私は知っていますか?のようなもののためです
(condition) ? statement-1: statement-2
しかし、この場合、a [FNR] = a [FNR]がどのように機能しているかがわかりません。これはいつ間違っているのでしょうか?
awk '{a[FNR]=a[FNR] ? a[FNR]","$0 : $0} END{for(i=1;i<=FNR;i++)print a[i]}' *.csv
a[FNR]=a[FNR] ? a[FNR]","$0 : $0
これ?
が三項演算子です。条件はちょうどa[FNR]
です。a
連想配列はどこにありますか。
a[FNR]
空でゼロ以外の場合はa[FNR] = a[FNR] "," $0
式を設定し、そうでない場合はを設定することを意味しa[FNR] = $0
ます。
言い換えれば、それは以下と同等です:
if (a[FNR]) {
a[FNR] = a[FNR] "," $0
} else {
a[FNR] = $0
}
正しいアプローチは、エドがコメントで正しく示唆しているように、このように使用することです。
a[FNR] = (FNR in a ? a[FNR] "," : "") $0
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加