技术解析

如何批量将英文的双引号替换为中文的前后双引号
0
2021-06-24 20:12:02
idczone

比如有类似如下的许多文件:

asdasd
"aa" asdasd "bb" asdasd
asdasd
"cc" asdasd "dd" asdasd
asdasd

我想在每行内,将匹配到的
奇数个英文双引号 " 替换为中文前双引号 “
偶数个英文双引号 " 替换为中文后双引号 ”

修改完后应该为:

asdasd
“ aa ” asdasd “ bb ” asdasd
asdasd
“ cc ” asdasd “ dd ” asdasd
asdasd

需使用 linux 下的原生命令,比如 sed 或者 awk


给个简单的,例如文件名是 test.txt
sed 's/"\([^"]\{0,\}\)"/“$1 ”/g' -i test.txt

奇偶数判断不如 判断 空格"=>空格+中文引号, 这样即便是引号漏掉没匹配也可以适配

1L 正则正解

有点小错误,改为
```
sed 's/"\([^"]\{0,\}\)"/“\1 ”/g' t.txt -i test.txt
```
成功了

非常感谢!

数据地带为您的网站提供全球顶级IDC资源
在线咨询
专属客服