AWKを使用して区切り文字を使用して行の内容を複数行に分割する方法

AWKを使用して区切り文字を使用して行の内容を複数行に分割する方法

次の入力が与えられました。

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=,)カンマで区切られた各単語を完全なレコードとして扱い、デフォルトの改行レコード区切り文字を使用して出力します。

おすすめ記事