次のファイルがあります。
2018.01.02;1.5;comment 1
2018.01.04;2.75;comment 2
2018.01.07;5.25;comment 4
2018.01.09;1.25;comment 7
.
2番目の列のすべての点を使い方,
と同じコンマで置き換えるか、2番目の列に適用して出力を次のように表示したいと思います。sed 's/\./\,/g' file
sed
awk
2018.01.02;1,5;comment 1
2018.01.04;2,75;comment 2
2018.01.07;5,25;comment 4
2018.01.09;1,25;comment 7
答え1
$ awk 'BEGIN{FS=OFS=";"} {gsub(/\./, ",", $2)} 1' ip.txt
2018.01.02;1,5;comment 1
2018.01.04;2,75;comment 2
2018.01.07;5,25;comment 4
2018.01.09;1,25;comment 7
BEGIN{}
このコードブロックは、入力ラインが処理される前に実行されます。FS=OFS=";"
入力フィールドと出力フィールドの区切り文字を次に設定します。;
gsub(/\./, ",", $2)
各入力ラインについて、.
2番目のフィールドのすべての内容を次に置き換えます。,
1
コンテンツ印刷(入力レコードを含む)$0
のawk慣用語。
答え2
sed 's/\./,/3' file
3番目に現れる点を変える
答え3
これは awk を使って行われます。
注文する:awk -F ";" '{gsub(/\./,",",$2);print $1";"$2";"$3}' filename
出力
2018.01.02;1,5;comment 1
2018.01.04;2,75;comment 2
2018.01.07;5,25;comment 4
2018.01.09;1,25;comment 7