いくつかのテキストを見つけた後、特定の行数を読み取るには?
例えば。 :
以下で「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回行われる。