マッチワードまでのファイルからすべての行を印刷したいawkでそれを行う方法をアドバイスしてください
例えば
Word PPPまですべての行を印刷したい
最初の行はAAA(任意のWord)と異なるはずであることに注意してください
cat file.txt
AAA ( the first line/Word chuld be any Word !!!!! )
BBB
JJJ
OOO
345
211
BBB
OOO
OOO
PPP
MMM
(((
&&&
これを入手する必要があります
AAA
BBB
JJJ
OOO
345
211
BBB
OOO
OOO
PPP
他の例(KJGFGHJまで印刷したい)
cat file.txt1
HG
KJGFGHJ
KKKK
だから私は取得する必要があります
HG
KJGFGHJ
試してください:
$ awk '1;/PPP/{exit}' file
AAA
BBB
JJJ
OOO
345
211
BBB
OOO
OOO
PPP
または、行の「PPP」が最初に一致するまで、最初の行に一致する範囲パターン(NRは1に等しい)を使用します。
awk 'NR==1,/PPP/' file
行が「PPP」と完全に一致する必要がある場合は、
awk 'NR==1,/^PPP$/' file
引数リストの各ファイルに対して同じことを行う場合は、処理された各ファイルの最初の行で1にリセットされるFNR変数を使用します
awk 'FNR==1,/PPP/' file1 file2 ...
OPが言ったように、最初の行またはファイルのWordには任意のWord(PPP
自体など)を含めることができるので、それを確認し、最初の行が一致しないようにエスケープし、awk
が終了しないようにする必要があります。そこ。
次に、これを試すことができます:
PPP # the first line/Word chuld be any Word !!!!! )
BBB
$$$
JJJ
OOO
PPP
345
PPP
%%%
awk '1;/PPP/{if (NR>1) exit}' file
PPP # the first line/Word chuld be any Word !!!!! )
BBB
$$$
JJJ
OOO
PPP