中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-02 11:36
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 使用sed在文件尾部添加字符的问题 查看 1,120 回复 9
楼 主 使用sed在文件尾部添加字符的问题 发表于 2006-11-21 02:37 ·  中国 河南 许昌 电信
新手上路
积分 18
发帖 8
注册 2006-04-06 07:45
20年会员
UID 53402
性别 男
状态 离线
我在论坛翻到一个
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....
该怎么做啊?~

谢了!
2 发表于 2006-11-21 02:41 ·  中国 河南 许昌 电信
新手上路
积分 18
发帖 8
注册 2006-04-06 07:45
20年会员
UID 53402
性别 男
状态 离线
或者不用sed的话,又该如何实现呢?
3 发表于 2006-11-21 02:47 ·  中国 河南 许昌 电信
新手上路
积分 18
发帖 8
注册 2006-04-06 07:45
20年会员
UID 53402
性别 男
状态 离线
呵呵~还有
如何把修改过的内容仍然保存在test.txt中
我试了用 >test.txt ,但是这样得到的test.txt是空内容
用 >> 的话,是追加。。
4 发表于 2006-11-21 02:58 ·  中国 河南 许昌 电信
新手上路
积分 18
发帖 8
注册 2006-04-06 07:45
20年会员
UID 53402
性别 男
状态 离线
呵呵,第一个问题解决了~
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是空内容
用 >> 的话,是追加。。
5 发表于 2006-11-21 03:06 ·  中国 广东 电信
荣誉版主
★★★★
batch fan
积分 5,226
发帖 1,737
注册 2006-03-10 00:38
20年会员
UID 51697
来自 成都
状态 离线
  在每行的尾部添加字符<tr>,而不是在每个文件的尾部追加,演示代码如下:

@echo off
for /f "delims=" %%i in (test.txt) do >>test_1.txt echo %%i^<tr^>
尺有所短,寸有所长,学好CMD没商量。
考虑问题复杂化,解决问题简洁化。
6 发表于 2006-11-21 03:07 ·  中国 河南 许昌 电信
新手上路
积分 18
发帖 8
注册 2006-04-06 07:45
20年会员
UID 53402
性别 男
状态 离线
-i[SUFFIX], --in-place[=SUFFIX]

edit files in place (makes backup if extension supplied)

用这个参数?可是这个参数是备份的啊
7 发表于 2006-11-21 03:12 ·  中国 河南 许昌 电信
新手上路
积分 18
发帖 8
注册 2006-04-06 07:45
20年会员
UID 53402
性别 男
状态 离线
比如有test1.txt、test2.txt、test3.txt....这些文件,如何直接在每个原文件的尾部添加</tr>啊?

我用sed的 sed "s/\x24/\<\/tr>/" 1.txt > 2.txt
只能在1.txt的尾部添加 </tr> ,并输出为 2.txt
8 发表于 2006-11-21 03:13 ·  中国 河南 许昌 电信
新手上路
积分 18
发帖 8
注册 2006-04-06 07:45
20年会员
UID 53402
性别 男
状态 离线
我搜索到一些资料,说sed如何想直接修改原文件的话只需要加一个 -i 但是我这样做的结果还是生成了两个,一个修改过的,一个备份的,并没有在原文件中修改
9 发表于 2006-11-21 08:04 ·  中国 河南 许昌 电信
新手上路
积分 18
发帖 8
注册 2006-04-06 07:45
20年会员
UID 53402
性别 男
状态 离线
郁闷啊~~谁帮帮我啊?
10 发表于 2006-11-21 09:05 ·  中国 甘肃 甘南藏族自治州 合作市 电信
金牌会员
★★★★
积分 4,103
发帖 1,744
注册 2006-01-20 13:00
20年会员
UID 49241
性别 男
来自 甘肃.临泽
状态 离线
另外。。还有一个问题。。就是如果我像批量在一些文件尾部添加字符,例如</tr>
文件名存在规律,例如:
test1.txt、test2.txt、test3.txt....
该怎么做啊?~

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

sed "s/$/abc/" test?.txt
论坛跳转: