私はこのコードを理解しようとしています。
awk 'NR%2{printf "%s ",$0;next;}1' yourFile
今カスタマイズしてみたいです。
このerror.txtの内容を考えると、次のようになります。
KEY 4048:1736 string
3
KEY 0:1772 string
1
KEY 4192:1349 string
1
KEY 7329:2407 string
2
KEY 0:1774 string
1
それから:
awk 'NR%2{printf NR "%s ", $0; next}1' error.txt
... 返されます:
1KEY 4048:1736 string 3
3KEY 0:1772 string 1
5KEY 4192:1349 string 1
7KEY 7329:2407 string 2
9KEY 0:1774 string 1
偶数行番号を参照しているようですが、それが何を参照しているのかNR%2
わかりません。それ以外の場合は行が返されます。1
1
awk 'NR%2{printf NR "%s ", $0; next}' error.txt
1KEY 4048:1736 string 3KEY 0:1772 string 5KEY 4192:1349 string 7KEY 7329:2407 string 9KEY 0:1774 string
全体的にまだ理解していませんね。
これまで、次のページを見てきました。
ベストアンサー1
%
それはモジュロ/残り算術演算子、2 つ以上の数字で構成されるモジュラー分割を探します。ここでは、NR
現在のレコード番号を2で割ることを意味し、次のように記録されます。条件文,偶数レコードの結果は 0 なので,0 はエラーの結果なので,次のようになります。行動実行されていません。
最後に、1
「常に真」の条件というイディオムが実装され、最初の数行の最後に偶数行番号が出力されます(NR%2
結果が0の間実行されます)。ここでは、これらの行番号はprintf
改行なしで印刷されます。バラよりawkスクリプトの最後にある「1」とはどういう意味ですか?