我需要匹配文件中的模式并打印以下两行。我为此使用grep -A2。但是我想忽略第一个grep中的某些行。
我需要第一个'grep -A2'的输出来做一些进一步的处理,所以据我所知,对grep -v进行管道传输不会帮助我。
$cat file.txt
stringA-hurdygurdy-andmorechars
line1
line2
stringA-hurdygurdy-stringB-andmorechars
line1
line2
stringA-hurdygurdy-andmorechars
line1
line2
我需要grep -A2所有具有“ stringA-hurdygurdy”的行,而不是那些包含stringB的行。
我正在努力 grep -A2 ^stringA.*[^stringB].* file.txt
您可以使用awk
:
awk '/stringA/ && !/stringB/ {n = NR+2} n >= NR' file.txt
stringA-hurdygurdy-andmorechars
line1
line2
stringA-hurdygurdy-andmorechars
line1
line2
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句