中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-09 12:04
47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,254 会员排行
DOS批处理 & 脚本技术(批处理室) » 关于"sed"命令合并文本文件上下行的问题
可打印版本  2,689 / 36
第31楼 youaoyi 发表于 2008-08-17 22:56
初级用户 发帖 67 积分 154
我是使用的中文XP,

chcp 437>nul & graftabl 936>nul 加上这句,

新生成的文本中开头还是有29搂那段说明文字

不支持长文件名这个问题应该是我误解了。

还有,听说change 命令是支持处理子目录中的文件的,

下面这段应该怎么修改才能同时处理所在目录下的包括子目录中的所有文本呢?

能直接修改原文件就可以,

在处理之前我就把这些文件全部拷贝到一个目录下的多个目录中。

(不能全部都放在同一个目录下,因为大量的文件名称是重复的)

chcp 437>nul & graftabl 936>nul
for %%a in ("*.txt") do (
change "%%a" /from "&H0D7C" /to "&H7C"
sed "/^$/d" "%%a"|sed -e :a -e "/\\$/N; s/\\\n//; ta"|sed ":a;$!N;s/\n|/|/;ta;P;D"
)

[ Last edited by youaoyi on 2008-8-17 at 11:03 PM ]
第32楼 HAT 发表于 2008-08-18 10:00
版主 发帖 5,017 积分 9,023
第33楼 youaoyi 发表于 2008-08-18 12:14
初级用户 发帖 67 积分 154
这样执行后,只能输出到屏幕显示啊? 原文件的内容依然带有乱字符.

批量处理该如何添加象">"这样的输出符呢? 不好意思,我是新手...
第34楼 HAT 发表于 2008-08-18 13:35
版主 发帖 5,017 积分 9,023
change.exe本来就是修改原文件的啊,不用重定向输出。
第35楼 youaoyi 发表于 2008-08-18 14:28
初级用户 发帖 67 积分 154
反复用下面的程式进行测试

chcp 437>nul & graftabl 936>nul
for %%a in ("*.txt") do (
change "%%a" /from "&H0D7C" /to "&H7C"
)
pause

虽然说能执行,但是实际上无法替换文本中的 0D7C 字段,

原文本用UT打开还是能查看到 0D7C 字段.

难道是第二个下载点的 change.exe 版本不行 ?

另外34楼的程式好像有问题,生成的新文本,连文本应该存在的分行都消失了.

[ Last edited by youaoyi on 2008-8-18 at 02:43 PM ]
第36楼 HAT 发表于 2008-08-18 14:44
版主 发帖 5,017 积分 9,023
不支持长文件名,就用短文件名吧:
第37楼 youaoyi 发表于 2008-08-18 15:31
初级用户 发帖 67 积分 154
好的 原来自己被文件名的长短给折腾了

非常感谢 HAT 的帮助 ,谢谢谢谢!
上一页  1 2 3
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023