こんにちは、私は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番目の行などが印刷されます。
NR
0から世紀を始めると状況が変わります。