[英]How to Print All line between matching first occurrence of word?
ABC
CDE
EFG
XYZ
ABC
PQR
EFG
從上面的文件中,我想打印 'ABC' 和第一次出現的 'EFG' 之間的行。
預期輸出:
ABC
CDE
EFG
ABC
PQR
EFG
如何打印從一個單詞到第二個單詞第一次出現的行?
編輯:如果您想打印所有出現在 ABC 到 DEF 之間的行並留下其他行,請嘗試以下操作。
awk '/ABC/{found=1} found;/EFG/{found=""}' Input_file
你能不能試試以下。
awk '/ABC/{flag=1} flag && !count;/EFG/{count++}' Input_file
$ awk '/ABC/,/EFG/' file
輸出:
ABC
CDE
EFG
ABC
PQR
EFG
這可能對你有用(GNU sed):
sed -n '/ABC/{:a;N;/EFG/!ba;p}' file
使用-n
選項關閉隱式打印。
收集ABC
和EFG
之間的線條,然后打印它們。 重復。
如果您只想在第一次出現ABC
到EFG
之間打印,請使用:
sed -n '/ABC/{:a;N;/EFG/!ba;p;q}' file
要打印第二次到第四次出現,請使用:
sed -En '/ABC/{:a;N;/EFG/!ba;x;s/^/x/;/^x{2,4}$/{x;p;x};x;}' file
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.