要处理多种不同的去限制器格式:

时间:2014-11-25 07:26:07

标签: awk

想知道,如何在输入文件中存在两种或多种不同的去限制器格式。 示例:输入文件由" |"取消限制和","

INPUT.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

Output.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 =","并替换"," as""如果存在于源文件中。 示例:Input 1,500.000 to be changed as 1500.000

Desired Output.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 

寻找你的建议!!!

1 个答案:

答案 0 :(得分:1)

尝试使用以下内容:

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

使用awk,您可以在生命之前替换“,”的出现:

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