中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-09-27 08:51
共 47,813 主题排行 / 349,918 发帖 / 今日 0 篇 / 48,276 会员排行
DOS批处理 & 脚本技术(批处理室) » [讨论]sed批量替换特殊符号
可打印版本  1,070 / 5
第1楼 hgx126 发表于 2009-03-13 13:43
初级用户 发帖 80 积分 100
[讨论]sed批量替换特殊符号
多个文本文件内容相似,其中一个内容如下:


能否用sed命令将该文件所在目录下的所有文本文件中的”|“替换成逗号?
当然,不sed命令也能将”|“替换成逗号,但是我想的是用sed可能效率要快些,是不是?批处理该如何写呢?
第2楼 yishanju 发表于 2009-03-13 14:01
银牌会员 发帖 1,357 积分 1,488
用FR的话
SED 类似,特殊字符前加\表示自身

fr -ric:"\|" -t:"," 1.txt
第3楼 yishanju 发表于 2009-03-13 14:02
银牌会员 发帖 1,357 积分 1,488
这样也可以
fr -f:"|" -t:"," 1.txt
第4楼 hgx126 发表于 2009-03-14 01:38
初级用户 发帖 80 积分 100
要求将多个文件批量替换,而不是只替换一个文件?
第5楼 yishanju 发表于 2009-03-14 12:06
银牌会员 发帖 1,357 积分 1,488
真吃力

fr /s -f:"|" -t:"," *.txt

其它选项:
-s - 包含子目录
-exp - 启用内存扩展算法,将会加倍 fr 的内存使用量,但是很多时候可以极大地
提高执行效率。如果你碰到了性能问题,可以尝试开启该选项。
-stdin - 从标准输入设备获得要查找的内容,并将结果从到标准输出设备(如果未指
定任何文件模板的话,则自动启用该选项)
-stdout - 像平时一样, 从文件中获得输入, 但将结果送到标准输出(而不是写回文
件)
-frc - 显示每个文件内发生的替换次数
-trc - 显示所有文件总共发生的替换次数
第6楼 pooronce 发表于 2009-03-14 13:05
中级用户 发帖 250 积分 484
sed -i "s@\|@,@g;" *.txt

做好备份,这是修改原文件的,慎用
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023