中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 18:21
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » 如何替换文本文件中某些行内容,包括特殊字符和空行
可打印版本  1,445 / 7
第1楼 mailmail 发表于 2009-05-04 05:36
新手上路 发帖 10 积分 10
如何替换文本文件中某些行内容,包括特殊字符和空行
比如我有一个文本文件a.txt在的d:\ad\下,内容如下
This is a dos
a - dos bat.
like bat

output: ok
现在要把2、3行和第4行的空行替换成join us. 如何来处理呢?谢谢!!

[ Last edited by mailmail on 2009-5-4 at 23:41 ]
第2楼 yishanju 发表于 2009-05-04 05:39
银牌会员 发帖 1,357 积分 1,488
说的空行还是空格
第3楼 mailmail 发表于 2009-05-04 07:05
新手上路 发帖 10 积分 10
a - dos bat.
like bat
加上下面那行空行,都替换成一句话
第4楼 mailmail 发表于 2009-05-04 09:06
新手上路 发帖 10 积分 10
对不起,说错了,应该是直接一个回车换行的,就是空的那行什么都没有的,等于把下面这个文本内容
This is a dos
a - dos bat.
like bat

output: ok
改成如下的样子
This is a dos
join us.
output: ok
第5楼 mailmail 发表于 2009-05-04 23:41
新手上路 发帖 10 积分 10
已经在论坛找到相关的例子,看到了如何替换某一行
http://www.cn-dos.net/forum/viewthread.php?tid=35759&fpage=1
但是如果要多行替换成一行呢?就是set string多次吗?
还有如果多行里面包括空行的话,如何替换呢?
第6楼 yishanju 发表于 2009-05-04 23:51
银牌会员 发帖 1,357 积分 1,488
一般用正则表达式查找替换工具处理比较好

fr -rnnlic:"like bat\r\n\r\n" -t:"join us\." a.txt

FR 下载:
http://baiy.cn/utils/fr/index.htm
第7楼 mailmail 发表于 2009-05-04 23:57
新手上路 发帖 10 积分 10
谢谢!这个学习下,因为公司用的,不能用外部新加命令,如果不用这个,是否就只能用循环语句一个一个替换呢?
第8楼 pkto 发表于 2009-10-22 20:38
初级用户 发帖 62 积分 62
Originally posted by yishanju at 2009-5-4 11:51 PM:
一般用正则表达式查找替换工具处理比较好

fr -rnnlic:"like bat\r\n\r\n" -t:"join us\." a.txt

FR 下载:
http://baiy.cn/utils/fr/index.htm


这个也是有问题的,不能够循环处理。如果like bat在空行的后面,就无法找到like bat字段并进行处理。

还有,看来依山居兄对fr的正则表达式十分的精通,为什么不开个专版,专门阐述一下呢?偶看了白扬的网址,里面只是规则,但很缺乏实例解说,让初学者很是迷茫啊!

[ Last edited by pkto on 2009-10-22 at 20:40 ]
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023