次のようなファイルがあります。
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列目にコンマ,
と同じようにsed 's/\./\,/g' file
2列目にのみこれを適用するために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
_$ 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イディオムです。sed 's/\./,/3' file
ドットの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