Search

如何查找文本並在之後復製文本?

  • August 11, 2017

我有一個腳本,可以創建一個包含大量資訊的 txt 文件。我想檢查其中是否有特定的文本,然後複製後面的內容。例如,這是 txt 文件:

blablablaWANTEDTEXT[TEXTTOCOPY]blablabla...

我想檢查是否WANTEDTEXT存在,如果存在,複製接下來的內容[]aka TEXTTOCOPY

謝謝

> echo blablablaWANTEDTEXT[TEXTTOCOPY]blablabla... | 
> awk -v searchtext=WANTEDTEXT '$0 ~ searchtext "\\[.*\\]" {
   strstart=index($0,searchtext "[")+length(searchtext)+1;
   tmpstr=substr($0,strstart); sub("].*$","",tmpstr); print tmpstr; } '

TEXTTOCOPY
echo '....' | grep -oP 'WANTEDTEXT\[\K[^]]*'

grep在該模式下操作的地方Perl,意味著您可以編寫 Perl 正則表達式,grep並且-o將只列印匹配的部分,而不是像以往那樣列印整行。

注意: 左邊的任何東西\K都不會顯示在輸出中。它是一種保持器標誌(後視但可變長度),指示grep在匹配但不輸出時使用它。


結果:

TEXTTOCOPY

引用自:https://unix.stackexchange.com/questions/385311