grep検索+次の行


17

ではgrep、次のようにコマンドを、私は私が必要とするテキストが見つかりました:

grep 'C02' ~/temp/log.txt 目的の文字列が見つかった場合は、見つかった文字列に続く行を印刷したいと考えています。

たとえば、目的のテキストが「abc」であり、abcが12行目で見つかった場合、13行目も印刷したいとします。


3
grep -A1 'abc' ~/temp/log.txt以下のための1つのコンテキストの線AマッチFTER -参照Context Line Controlマニュアル(のサブセクションman grep
steeldriver

1
gnu grepを使用すると簡単です。posixは -Aフラグを指定しません
ジェフシャラー

1
こんにちは、Stack Exchangeへようこそ!SEでは、ヘルプを求めてここに来る前に、いくつかの基本的な調査を行うことが期待されています。たとえば、「grep show next line」を検索すると、最初の結果に間接的な回答が返され、2番目の結果に直接的な回答が返されました。この問題をすでに解決しようとして何をしましたか?
16年

回答:


24

Linuxシステムを使用している場合は、次を試すことができます。

grep -A1 "C02" ~/temp/log.txt


OPTIONS
       -A NUM, --after-context=NUM
              Print NUM lines of trailing context after matching lines.  Places a line containing -- between contiguous groups of matches.
       -B NUM, --before-context=NUM
              Print NUM lines of leading context before matching lines.  Places a line containing -- between contiguous groups of matches.
       -C NUM, --context=NUM
              Print NUM lines of output context.  Places a line containing -- between contiguous groups of matches.

awkは次のようにも使用できます。

awk '/C02/{print;getline;print}' ~/temp/log.txt

1
また、sed -n '/C02/{N; p}' ~/temp/log.txt
Sundeep
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.