awk 'NR%2 ...'を理解する

awk 'NR%2 ...'を理解する

こんにちは、私はBashを学ぶために「Bash Command Line and Shell Scripting Pocket Introduction」を使用していますが、偶数行を印刷するawkの章を理解していません。

注文する:

awk ' NR%2 { printf "%s", $0; print "" }' < data

コンテンツデータテキストファイル:

a,b,c,d
e,f,g,h
1,2,3,4
5,6,7,8

出力:

a,b,c,d
1,2,3,4

私の質問は、なぜ偶数行の代わりに奇数行を印刷するのですか?

私は NR%2==1 と NR%2==0 を実行し、予想通り奇数/偶数出力を提供しました。
私は何を見逃していますか?

ベストアンサー1

NR~である一つに基づいてレコード(行)番号。NR % 2これを2で割って残りを返すので、奇数は1、偶数は0です。 awkでは、ゼロ以外の数字はtrueなので、最初の行、3番目の行などが印刷されます。

NR0から世紀を始めると状況が変わります。

おすすめ記事