码迷,mamicode.com
首页 > 其他好文 > 详细

使用sed和awk将文件中的非双引号中的逗号分隔符替换为竖线

时间:2018-08-13 23:45:19      阅读:182      评论:0      收藏:0      [点我收藏+]

标签:awk   sed和awk   sed   print   for   sub   int   逗号   begin   

原始文件:
$ vi 5.txt
"2018-08-13","aa,bb,cc,dd",zwfer,18,"qw,qe,r,ds,fd",888
"2018-08-13","dd,bb,cc",zwfer,18,"qw,r,ds,fd",888
"2018-08-13","aa,bb,cc,dd",zwfer,18,"qw,qe,r,ds,fd",888
"2018-08-13","aa,bb,cc",zwfer,18,"qw,fd",888
替换为
"2018-08-13"|"aa,bb,cc,dd"|zwfer|18|"qw,qe,r,ds,fd"|888
"2018-08-13"|"dd,bb,cc"|zwfer|18|"qw,r,ds,fd"|888
"2018-08-13"|"aa,bb,cc,dd"|zwfer|18|"qw,qe,r,ds,fd"|888
"2018-08-13"|"aa,bb,cc"|zwfer|18|"qw,fd"|888
双引号中的逗号不替换
命令:
$ sed ‘s/,/|/g‘ 5.txt | awk ‘BEGIN{FS=OFS="\""} {for(i=2;i<=NF;i=i+2){$i=gensub(/|/,",","g",$i)};print $0}‘ >6.txt
$ more 6.txt
"2018-08-13"|"aa,bb,cc,dd"|zwfer|18|"qw,qe,r,ds,fd"|888
"2018-08-13"|"dd,bb,cc"|zwfer|18|"qw,r,ds,fd"|888
"2018-08-13"|"aa,bb,cc,dd"|zwfer|18|"qw,qe,r,ds,fd"|888
"2018-08-13"|"aa,bb,cc"|zwfer|18|"qw,fd"|888

使用sed和awk将文件中的非双引号中的逗号分隔符替换为竖线

标签:awk   sed和awk   sed   print   for   sub   int   逗号   begin   

原文地址:http://blog.51cto.com/heraleign/2159443

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!