我有一个很长的.txt文件(LONG.txt).在那个txt文件中,我想搜索3种类型的模式,然后我想将grep结果捕获到一个新的txt文件(SHORT.txt)中.
模式:
> AAAAA
> BBBBB
> CCCCC
注意:
当找到模式AAAAA或BBBBB时,我想只打印包含AAAAA或BBBBB的那一行.
当找到模式CCCCC时,我想打印包含CCCCC下一行的那一行.
例:
LONG.txt:
bla bla
bla bla
bla bla
something something AAAAA something something
bla bla
bla bla
something something CCCCC something something
bla bla
bla bla
bla bla
bla bla
bla bla
bla bla
something something BBBBB something something
bla bla
bla bla
bla bla
something something AAAAA something something
bla bla
something something AAAAA something something
bla bla
something something BBBBB something something
bla bla
bla bla
bla bla
something something CCCCC something something
bla bla
bla bla
bla bla
输出应该是:
something something AAAAA something something
something something CCCCC something something
bla bla
something something BBBBB something something
something something AAAAA something something
something something AAAAA something something
something something BBBBB something something
something something CCCCC something something
bla bla
我尝试的是:
grep -B0 "AAAAA" LONG.txt > SHORT.txt
grep -B0 "BBBBB" LONG.txt > SHORT.txt
grep -B1 "CCCCC" LONG.txt > SHORT.txt
但这并没有给我想要的输出.
awk’/ AAA | BBB | CCC / {print; if($0~ / CCC /){getline;打印;}}’