awkを使用して列からフィールド区切り文字を削除して置き換える方法は?

awkを使用して列からフィールド区切り文字を削除して置き換える方法は?

次のCSVファイルがあります。

name_var;type_var;
id;string;
dt_depot;string;
num_artc;string

出力が次のように最初の項目を削除し、;最後の項目を置き換えたいと思います。,

name_var type_var,
id string,
dt_depot string,
num_artc string

ベストアンサー1

単にsed次に変更してください。

$ sed 's/;$/,/; s/;/ /g' file
name_var type_var,
id string,
dt_depot string,
num_artc string

awkソリューションの場合、入力ファイルに2つのパディング列のみを含める必要がある場合は、次のawk式を使用できます。

$ awk -F";" '{ if (NF==3) $2=$2","; print $1,$2 }' file
name_var type_var,
id string,
dt_depot string,
num_artc string

おすすめ記事