いくつかのテキストを見つけた後、特定の行を読む方法は何ですか?

いくつかのテキストを見つけた後、特定の行を読む方法は何ですか?

いくつかのテキストを見つけた後、特定の行数を読み取るには?

例えば。 :

以下で「Unix」を見つけて、次の2行を読んでください。

Test 1
Test 2
Test 3
Test 4
UNIX
Test 5
Test 6
Test 7
Test 8
Test 9

結果は次のとおりです。

Test 5
Test 6

注:最後の例の「Unix」はパラメータなので、別のテキストにすることができます。

私が持っているもの:

まだアイデアが足りないので照明だけでいいです。これを行うには、別のスクリプトを書くことをお勧めします。

ベストアンサー1

一方grep通行:

grep -A2 -P '^UNIX$' file

説明する: -A意味: 一致後、次の 2 行を印刷します。

またはawk:

awk '$0=="UNIX"{getline; print; getline; print}' file

説明する:()行でUNIXを検索してください$0=="UNIX"。見つかったら、次の行をバッファ(getline)に入れてバッファ(print)を印刷します。これは2回行われます。

または以下を使用してくださいsed

sed -n '/^UNIX$/{n;p;n;p}' file

説明する:UNIX( /^UNIX$/) を検索します。見つかった場合、実行は{...}nのことを意味し、p印刷を意味します。この操作も2回行われる。

おすすめ記事