处理多种不同的分隔符格式:

  • 本文关键字:分隔符 格式 处理 awk
  • 更新时间 :
  • 英文 :


想知道,如何处理输入文件中存在的两种或多种不同的分隔符格式。示例:输入文件不受"|"和","

的限制

输入.txt

Name|Location|Amount        |Desc|Count
aaaa|xxxxxxxx|100.000       |aaa |15 
bbbb|yyyyyyyy|1,500.000     |bbb |20
cccc|zzzzzzzz|2,324,567.000 |ccc |38
dddd|wwwwwwww|58.000        |ddd |42  

试过以下命令,不成功

awk -F '|' '{OFS=",";  print $1,$2,$3,$4,$5}'  Input.txt

输出.txt

aaaa,xxxxxxxx,100.000       ,aaa ,15
bbbb,yyyyyyyy,1,500.000     ,bbb ,20
cccc,zzzzzzzz,2,324,567.000 ,ccc ,38
dddd,wwwwwwww,58.000        ,ddd ,42

这里我尝试设置 OFS=","并将 ","替换为 "(如果源文件中存在)。示例:Input 1,500.000 to be changed as 1500.000

所需的输出.txt

Name,Location,Amount        ,Desc,Count
aaaa,xxxxxxxx,100.000       ,aaa ,15 
bbbb,yyyyyyyy,1500.000     ,bbb ,20
cccc,zzzzzzzz,2324567.000 ,ccc ,38
dddd,wwwwwwww,58.000        ,ddd ,42 

!!寻找您的建议

尝试如下 sed:

sed 's/,//g;s/|/,/g' Input.txt

使用 awk,您可以在下面这样替换 "," 的出现:

awk -F '|' '{ gsub(/,/,""); $1=$1 }1' OFS="," Input.txt

最新更新