次の入力が与えられました。
field1,field2,field3,field4
私はこのような出力を得たい
field1
field2
field3
field4
awkを使ってこれを行うにはどうすればよいですか?
ベストアンサー1
Awkの慣用的な方法は次のとおりです。
awk 'BEGIN{FS=","; OFS="\n"} {$1=$1} 1'
または等しく
awk '{$1=$1} 1' FS=, OFS='\n'
新しい区切り文字を使用してレコードを強制的{$1=$1}
に再評価OFS
し、1
基本print
操作をトリガーします。必要に応じて、他の表現(たとえばNF += 0
)を使用して再評価を強制できます。これは優先事項の問題です。
迅速で汚い方法は
awk -vRS=, 1
(またはawk 1 RS=,
)カンマで区切られた各単語を完全なレコードとして扱い、デフォルトの改行レコード区切り文字を使用して出力します。