中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 使用sed在文件尾部添加字符的问题
作者:
标题: 使用sed在文件尾部添加字符的问题 上一主题 | 下一主题
sloo
新手上路





积分 18
发帖 8
注册 2006-4-6
状态 离线
『楼 主』:  使用sed在文件尾部添加字符的问题

我在论坛翻到一个
sed "s/^/\/span>/;s/\x24/\/span>/" test.txt
这样的命令,是在test.txt首部和尾部添加 /span> 的
我稍微修改了一下: sed "s/\x24/\/<tr>/" test.txt
是只在test.txt的尾部添加<tr>

我想问的是,如何添加</tr>呢?
我把上面那个命令改成 sed "s/\x24/\/</tr>/" test.txt 结果就提示我:
sed: -e expression #1, char 12: Unknown option to `s'
该用什么来代替 / 呢?

另外。。还有一个问题。。就是如果我像批量在一些文件尾部添加字符,例如</tr>
文件名存在规律,例如:
test1.txt、test2.txt、test3.txt....
该怎么做啊?~

谢了!

2006-11-21 02:37
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
sloo
新手上路





积分 18
发帖 8
注册 2006-4-6
状态 离线
『第 2 楼』:  

或者不用sed的话,又该如何实现呢?

2006-11-21 02:41
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
sloo
新手上路





积分 18
发帖 8
注册 2006-4-6
状态 离线
『第 3 楼』:  

呵呵~还有
如何把修改过的内容仍然保存在test.txt中
我试了用 >test.txt ,但是这样得到的test.txt是空内容
用 >> 的话,是追加。。

2006-11-21 02:47
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
sloo
新手上路





积分 18
发帖 8
注册 2006-4-6
状态 离线
『第 4 楼』:  

呵呵,第一个问题解决了~
sed "s/\x24/\<\/tr>/" 1.txt

sed和正则表达式

s e d识别任何基本正则表达式和模式及其行匹配规则。记住规则之一是:如果要定位一特殊字符,必须使用( \)屏蔽其特殊含义

找到了这个~

还剩下两个问题。。。
1.  如果我像批量在一些文件尾部添加字符,例如</tr>
文件名存在规律,例如:
test1.txt、test2.txt、test3.txt....

2.  如何把修改过的内容仍然保存在test.txt中
我试了用 >test.txt ,但是这样得到的test.txt是空内容
用 >> 的话,是追加。。

2006-11-21 02:58
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
namejm
荣誉版主

batch fan


积分 5226
发帖 1737
注册 2006-3-10
来自 成都
状态 离线
『第 5 楼』:  

  在每行的尾部添加字符<tr>,而不是在每个文件的尾部追加,演示代码如下:
@echo off
for /f "delims=" %%i in (test.txt) do >>test_1.txt echo %%i^<tr^>




尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
2006-11-21 03:06
查看资料  发短消息 网志   编辑帖子  回复  引用回复
sloo
新手上路





积分 18
发帖 8
注册 2006-4-6
状态 离线
『第 6 楼』:  

-i[SUFFIX], --in-place[=SUFFIX]

              edit files in place (makes backup if extension supplied)

用这个参数?可是这个参数是备份的啊

2006-11-21 03:07
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
sloo
新手上路





积分 18
发帖 8
注册 2006-4-6
状态 离线
『第 7 楼』:  

比如有test1.txt、test2.txt、test3.txt....这些文件,如何直接在每个原文件的尾部添加</tr>啊?

我用sed的 sed "s/\x24/\<\/tr>/" 1.txt > 2.txt
只能在1.txt的尾部添加 </tr> ,并输出为 2.txt

2006-11-21 03:12
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
sloo
新手上路





积分 18
发帖 8
注册 2006-4-6
状态 离线
『第 8 楼』:  

我搜索到一些资料,说sed如何想直接修改原文件的话只需要加一个 -i 但是我这样做的结果还是生成了两个,一个修改过的,一个备份的,并没有在原文件中修改

2006-11-21 03:13
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
sloo
新手上路





积分 18
发帖 8
注册 2006-4-6
状态 离线
『第 9 楼』:  

郁闷啊~~谁帮帮我啊?

2006-11-21 08:04
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复
vkill
金牌会员





积分 4103
发帖 1744
注册 2006-1-20
来自 甘肃.临泽
状态 离线
『第 10 楼』:  

另外。。还有一个问题。。就是如果我像批量在一些文件尾部添加字符,例如</tr>
文件名存在规律,例如:
test1.txt、test2.txt、test3.txt....
该怎么做啊?~

sed 帮助上说的很清楚的啊~

sed "s/$/abc/" test?.txt

2006-11-21 09:05
查看资料  发送邮件  访问主页  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: