[英]awk: Elegant way to fetch the word after a separator
考慮以下數據庫模式:
CREATE UNIQUE INDEX blah1 ON table1(length);
CREATE INDEX blah2 ON table3(name);
CREATE INDEX blah3 ON table3 USING btree(id);
我想編寫一個小的awk腳本,該腳本將返回索引和表的名稱,例如:
blah1, table1
blah2, table2
blah3, table3
我需要匹配單詞INDEX
之后的單詞和單詞ON
之后的單詞(
空格結尾)。
知道如何使用正則表達式匹配而不迭代所有$NF
嗎?
我不太了解awk,但這似乎行得通:
awk 'BEGIN{ FS="INDEX | ON "}{gsub(/[ (].*/,"",$3); print $2", " $3}' test.dat
sed 's/.*INDEX \([^ ]*\) ON \([^( ]*\)[( ].*/\1, \2/' inputfile
awk '{sub(".*INDEX ","");sub(" ON ",",");sub("[( ].*",""); sub(",",", ");print}' inputfile
與Perl一線筆完美搭配。
cat file | perl -ne '/INDEX ([a-zA-Z0-9]+) ON ([a-zA-Z0-9]+)/ && print "$1, $2\n";'
返回您想要的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.