Greping 文本文件

Greping 文本文件

我有文本文件:

Line1 aaa
Line2 aaa
Line3 aaa
Line4 importan info about Linux
Line5 infoA
Line6 infoB
Line7

我想要显示包含单词“Linux”和另外两行的行。

关于第一部分很清楚:

cat textfile.txt |grep Linux

但是如何显示多两行呢?

答案1

使用-A以下选项grep

cat textfile.txt | grep -A2 Linux

或不带cat

grep -A2 Linux textfile.txt

答案2

Awk替代方法

$ awk '/Linux/ {print $0; for (i=1;i<=2;i++){ getline; print $0 } }' test-text-file.txt                               
Line4 importan info about Linux
Line5 infoA
Line6 infoB

或者按照 Pilot6 在评论中所建议的那样,你可以这样做

awk '/Linux/{x=NR+2}(NR<=x)' test-text-file.txt

相关内容