だから、次のような入力があります。
start
abcd
sfd
afsdaf
afsaf
end 1
start
sdfo
efsf
end 0
start
sdf
efsf
end 2
したがって、開始と終了(含む)の間の行だけを印刷したいが、行の2番目のフィールドがend
0より大きい場合にのみ印刷したいと思います(したがって、start
and end 1
、start
andの間、andの間end 2
ではありません)。私ができる方法はありますか?start
end 0
ベストアンサー1
$ awk -v RS= -v ORS='\n\n' '$NF' file
start
abcd
sfd
afsdaf
afsaf
end 1
start
sdf
efsf
end 2
レコードは空行で区切られており、すべて「start」で始まり「end」で終わるため、「start」で始まり「end」で終わるという事実は不適切です。私たちが考慮する必要があるのは、上記のように、各空行で区切られた段落の最後のスペースで区切られたフィールドがゼロではないことです。If RS is null
から探すhttps://pubs.opengroup.org/onlinepubs/9699919799/utilities/awk.htmlRS=
何をすべきかわからない場合。