文本替换 - 在linux下怎么大量将"一串字符"都替换为中文标点的“同样一串字符”
PHPz
PHPz 2017-04-17 11:30:11
[Linux讨论组]

在linux下怎么大量将"一串字符"都替换为中文标点的“同样一串字符”。 gedit下有替换工具,不清楚怎么表示任意一串字符,而且就算知道这样一串字符,还必须同样将同样这串字符传递给等下要替换的同样那串文字中。 具体效果就是这样的: "测试文字" → “测试文字”

这个文本很大,必须用批处理的方式,请问有好的方法吗?

看了一段时间文档,本来希望节省点时间的,看了不过自讨没趣罢了。 命令如下。

sed -e 's/(")([^"]*)(")/“\2”/g' test>test1

其中s表示替换,() 括住一个匹配值,然后后面可以用\1引用。\2类似。然后/g'表示全局。 具体请参看这个网站: http://www.360doc.com/content/12/0209/14/8739082_185277670.shtml

PHPz
PHPz

学习是最好的投资!

全部回复(4)
阿神

可以考虑用sed,那个东西命令好复杂,可以自己研究看看。

大家讲道理

sed -i 's/(")([^"]*)(")/“\2”/g' test

伊谢尔伦

没太看懂题目。如果是把所有英文标点转成对应的中文标点的话,使用 Python 的 str.translate 方法很适合。tr 命令不行,因为它不能正确处理多字节字符。

伊谢尔伦

方法1:

perl -pe 's/"(.+?)"/“\1”/g' originalfile > newfile

原文件不被修改,修改结果在新文件中

方法2:

perl -pi.back -e 's/"(.+?)"/“\1”/g' original_file

原文件不被修改,修改结果在original_file.back中

方法3:

perl -pi -e 's/"(.+?)"/“\1”/g' original_file

直接修改并替代

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号