使用sed和awk将文件中的非双引号中的逗号分隔符替换为竖线
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用sed和awk将文件中的非双引号中的逗号分隔符替换为竖线相关的知识,希望对你有一定的参考价值。
原始文件:
$ 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将文件中的非双引号中的逗号分隔符替换为竖线的主要内容,如果未能解决你的问题,请参考以下文章