中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 第三方工具sed 如何添加多行?
作者:
标题: 第三方工具sed 如何添加多行? 上一主题 | 下一主题
ganjie
初级用户





积分 49
发帖 37
注册 2007-5-8
状态 离线
『楼 主』:  第三方工具sed 如何添加多行?

看了一下,第三方工具sed ,发现它好像只能添加单行的,现在小弟想编个批处理,把下面这几段代码添加到当前目录里(包括所有子文件夹)的所有文本开头中,求会用这个工具的大大们,帮写个批处理,谢谢了!
<tr>— 技术永无止尽,未来事在人为<tr>
<td>我这个主要是要自动化<td>
<tr>— 技术永无止尽,未来事在人为01<tr>
<td>机构,户名,余额,借款日,到期日,起息日,四级,五级,表内息,表外息,客户号,借据号<td>
<tr>是否还应该加上别的判断<tr>
如1.txt内容为:

最近更新:
5.2 版:[2008-7-3]
1.音乐窗口支持更换配色方案;
2.支持在音乐窗口内使用右键菜单功能;
3.关闭音乐窗口时记忆当前页面状态;
4.为千千静听Web控件定制了默认界面;
5.清空缓存文件时区分缓存文件和用户文件;
6.修正5.2Beta版不能正常播放CD的问题;
7.修正5.2Beta版不能收听MMS协议网络广播的问题;
8.修正其他BUG;


添加内容后,为:
<tr>— 技术永无止尽,未来事在人为<tr>
<td>我这个主要是要自动化<td>
<tr>— 技术永无止尽,未来事在人为01<tr>
<td>机构,户名,余额,借款日,到期日,起息日,四级,五级,表内息,表外息,客户号,借据号<td>
<tr>是否还应该加上别的判断<tr>
最近更新:

5.2 版:[2008-7-3]
1.音乐窗口支持更换配色方案;
2.支持在音乐窗口内使用右键菜单功能;
3.关闭音乐窗口时记忆当前页面状态;
4.为千千静听Web控件定制了默认界面;
5.清空缓存文件时区分缓存文件和用户文件;
6.修正5.2Beta版不能正常播放CD的问题;
7.修正5.2Beta版不能收听MMS协议网络广播的问题;
8.修正其他BUG;



2009-2-5 11:15
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ganjie
初级用户





积分 49
发帖 37
注册 2007-5-8
状态 离线
『第 2 楼』:  

如果使用sed 太难的话,也可以直接用批处理就行了,总之是可以添加多行插入文本就行了!要求不生成临时文件,我在本论坛中看到过把一行插入文本开头的贴子,而且都是要生成临时文件。

2009-2-5 14:41
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 3 楼』:  

两种方法:

1、用-f参数调用sed脚本;
新建一个b.sed文件,内容为

  Quote:
1i<tr>— 技术永无止尽,未来事在人为<tr>\
<td>我这个主要是要自动化<td>\
<tr>— 技术永无止尽,未来事在人为01<tr>\
<td>机构,户名,余额,借款日,到期日,起息日,四级,五级,表内息,表外息,客户号,借据号<td>\
<tr>是否还应该加上别的判断<tr>

然后命令行执行
sed -i -f b.sed 1.txt
2、用多个-e参数;
sed -i -e "1i<tr>— 技术永无止尽,未来事在人为<tr>" -e "1i<td>我这个主要是要自动化<td>" -e "1i<tr>— 技术永无止尽,未来事在人为01<tr>" -e "1i<td>机构,户名,余额,借款日,到期日,起息日,四级,五级,表内息,表外息,客户号,借据号<td>" -e "1i<tr>是否还应该加上别的判断<tr>" 1.txt


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

[b]看你妹啊[/b]


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

膜拜lxmxn大神

sed -i 在windows下修改过的文本回车换行会变成黑方块,这个怎么解决呢
我用的SED 是从GUNWIN32 下载的最新版本、




有问题请发论坛或者自行搜索,再短消息问我的统统是SB
2009-2-5 15:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ganjie
初级用户





积分 49
发帖 37
注册 2007-5-8
状态 离线
『第 5 楼』:  

上面的代码,运行后,它生成是一个 sedDOSSUX 文件,没有添加进文本中,不过sedDOSSUX 这个里的内容,却是我想要的内容,有什么方法,能让它添加入文本,又不生成sedDOSSUX 吗?难道是要删除原来的文本,然后去重命名 sedDOSSUX ,这样什么了
@echo off
setlocal enableDelayedExpansion
for /f "delims=" %%i in ('dir /s /b "*.txt"') do (
sed -i -f K:\tmp\b.sed %%i
)
pause
[ Last edited by ganjie on 2009-2-5 at 15:44 ]

2009-2-5 15:37
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 6 楼』:  

RE yishanju
more result.txt > newfile.txt 即可搞定黑方块的问题。

RE ganjie
你肯定没有按照我的方法来,仔细检查一下吧,我测试过可行。

2009-2-5 15:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ganjie
初级用户





积分 49
发帖 37
注册 2007-5-8
状态 离线
『第 7 楼』:  

是的,刚才我少了一个b.sed 中少了一个1i ,我已经改了,在5楼,如何才能添加入文本,而不是生成sedDOSSUX

[ Last edited by ganjie on 2009-2-5 at 17:25 ]

2009-2-5 15:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: