У меня есть текстовый файл:
Line1 aaa
Line2 aaa
Line3 aaa
Line4 importan info about Linux
Line5 infoA
Line6 infoB
Line7
Я хотел бы к строке дисплея, содержащей слово "Linux" и две строки больше.
Относительно первой части ясно:
cat textfile.txt |grep Linux
Но как отобразить две строки больше?
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
Используйте -A
опция grep
:
cat textfile.txt | grep -A2 Linux
или без cat
:
grep -A2 Linux textfile.txt