簡體   English   中英

awk:一種在分隔符后提取單詞的優雅方法

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM