中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: [讨论]sed批量替换特殊符号 上一主题 | 下一主题
hgx126
初级用户





积分 100
发帖 80
注册 2008-9-12
状态 离线
『楼 主』:  [讨论]sed批量替换特殊符号

多个文本文件内容相似,其中一个内容如下:
机构|户名|余额|借款日|到期日|客户号|四级|五级
5411|安波|30,000.00|2008-7-29|2009-7-28|54180000907802|正常|正常
5411|安德顺|70,000.00|2008-1-23|2009-1-21|48270000112781|正常|正常
5411|安德阳|80,000.00|2008-6-6|2011-6-5|54110000930267|正常|正常
5411|安光明|28,000.00|2008-10-13|2009-10-12|54220000827030|正常|关注
5411|安和平|10|1999-7-2|2000-1-2|47680000014754|呆滞|可疑
能否用sed命令将该文件所在目录下的所有文本文件中的”|“替换成逗号?
当然,不sed命令也能将”|“替换成逗号,但是我想的是用sed可能效率要快些,是不是?批处理该如何写呢?

2009-3-13 13:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 2 楼』:  

用FR的话
SED 类似,特殊字符前加\表示自身

fr -ric:"\|" -t:"," 1.txt

2009-3-13 14:01
查看资料  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 3 楼』:  

这样也可以
fr -f:"|" -t:"," 1.txt

2009-3-13 14:02
查看资料  发短消息 网志   编辑帖子  回复  引用回复
hgx126
初级用户





积分 100
发帖 80
注册 2008-9-12
状态 离线
『第 4 楼』:  

要求将多个文件批量替换,而不是只替换一个文件?

2009-3-14 01:38
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yishanju
银牌会员

[b]看你妹啊[/b]


积分 1488
发帖 1357
注册 2006-5-20
状态 离线
『第 5 楼』:  

真吃力

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

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

2009-3-14 12:06
查看资料  发短消息 网志   编辑帖子  回复  引用回复
pooronce
中级用户





积分 484
发帖 250
注册 2007-6-5
状态 离线
『第 6 楼』:  

sed -i "s@\|@,@g;" *.txt

做好备份,这是修改原文件的,慎用

2009-3-14 13:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: