2014-03-28 95 views
1

数据:AWK:在引号的字符串替换逗号,下划线和删除报价

的1.txt

-1,"AAA",[email protected] 
-10,"B ,BB","b, [email protected]" 
-7,C,[email protected] 

我想 1.去除逗号与下划线 2.取出报价也引用字符串之后

我使用如下:

awk -F'"' -v OFS='' '{ for (i=2; i<=NF; i+=2) gsub("[,]", "_", $i) } 1' 1.txt > 2.txt 

输出:(注意,“在第一线[” AAA“]不会被删除,因为没有逗号

-1,"AAA",[email protected] 
-10,"B ,BB",b_ [email protected] 
-7,C,[email protected] 

所以另外我用

awk -F'"' -v OFS='' '{ for (i=1; i<=NF; i+=1) } 1' 2.txt > 3.txt 

-1,AAA,[email protected] 
-10,"B ,BB",b_ [email protected] 
-7,C,[email protected] 

请建议做一个更好的办法上述

+0

的最简单的解决方案是不能再认为逗号分隔的数据是分隔的数据的唯一有效的形式。 awk和UNIX一般假设数据分割字符将仅显示为数据分隔符,而不是作为一个数据值。考虑标签导出数据或“|”字符。祝你好运。 – shellter

回答

相关问题