nat*_*ath 16 sed awk text-processing
我有一个这样的文件:
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
Run Code Online (Sandbox Code Playgroud)
我想.
用逗号替换第二列中的所有点,,
就像我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
Run Code Online (Sandbox Code Playgroud)
Sun*_*eep 28
$ 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
Run Code Online (Sandbox Code Playgroud)
BEGIN{}
此代码块将在处理任何输入行之前执行FS=OFS=";"
将输入和输出字段分隔符设置为 ;
gsub(/\./, ",", $2)
对于每个输入行,将.
第二个字段中的所有内容替换为,
1
是一个 awk 成语,用于打印$0
(包含输入记录)的内容使用 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
Run Code Online (Sandbox Code Playgroud)