标题: [讨论]sed批量替换特殊符号
[打印本页]
作者: hgx126
时间: 2009-3-13 13:43
标题: [讨论]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可能效率要快些,是不是?批处理该如何写呢?
作者: yishanju
时间: 2009-3-13 14:01
用FR的话
SED 类似,特殊字符前加\表示自身
fr -ric:"\|" -t:"," 1.txt
作者: yishanju
时间: 2009-3-13 14:02
这样也可以
fr -f:"|" -t:"," 1.txt
作者: hgx126
时间: 2009-3-14 01:38
要求将多个文件批量替换,而不是只替换一个文件?
作者: yishanju
时间: 2009-3-14 12:06
真吃力
fr /s -f:"|" -t:"," *.txt
其它选项:
-s - 包含子目录
-exp - 启用内存扩展算法,将会加倍 fr 的内存使用量,但是很多时候可以极大地
提高执行效率。如果你碰到了性能问题,可以尝试开启该选项。
-stdin - 从标准输入设备获得要查找的内容,并将结果从到标准输出设备(如果未指
定任何文件模板的话,则自动启用该选项)
-stdout - 像平时一样, 从文件中获得输入, 但将结果送到标准输出(而不是写回文
件)
-frc - 显示每个文件内发生的替换次数
-trc - 显示所有文件总共发生的替换次数
作者: pooronce
时间: 2009-3-14 13:05
sed -i "s@\|@,@g;" *.txt
做好备份,这是修改原文件的,慎用