中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-12 00:43
47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行
DOS批处理 & 脚本技术(批处理室) » 【共享】P者,sed不可不学
可打印版本  10,714 / 45
第1楼 plp626 发表于 2008-05-31 04:22
银牌会员 发帖 1,020 积分 2,278
【共享】P者,sed不可不学
大家在这个帖子里尽管讨论文本,字符处理的问题,但是回答者尽量用sed处理
只要处理的效率高,也可考虑用sed+for+其他,总之外部工具就只提供sed)------OS: windows NT系列
目的------就是为了大家很好地学习sed,带着问题学,这从实践中学习

我也在学,以前总是半途而废,这个帖子发了,就真正从这里开始sed的学习旅程了,希望有你同行。。。。

1,输出文本时(这5个字在以后省略)怎样显示一个文本的前10行?最后1行?

解释:$表示....d,p表示,-n参数....举个例子.....

2,将文本的“;”“,”作为换行符其他字符不变?
解释:......

3,显示文本第20行到25行之间的内容? ----3楼

4,显示文本的奇数行?偶数行? ----4楼

5,在文本里包含"爱你"的字符换成”【爱你】“,包含“恨你”的字符换成"(恨你)"输出? ----5楼

6,将文本里的这些字符%:^?<>*/\|&全部替换为空格? ----6楼

7,怎么显示纯英文行,中文行?中英文混合行?

8,将奇偶行拼接成一行,比如12行合并,34行合并....?

9,如果当前行是以"我"字开头,怎么将它合并到上一行?

10,将每一行首、尾、的所有空格删除? ----7,12楼

11,给每一行的开头加上"echo"? ----8楼


12,如果某行的行尾是以"。"结尾,就删除"。" ----13楼

13,如果某行多于10个字符,就只显示该行前10个字符?

14,如果某行包含数字,以20个字符为宽度将数字右对齐?

15,倒置所有行,第一行成为最后一行,依次类推.....

16,将行中的字符逆序排列,第一个字成为最后一字,……

17,在每5行后增加一空白行

18,显示所有重复行

19,在每行的第5个与第6个字符之间插入”/*“,第10与第11个字符之间插入"*/"。如果某行少于11个字符补空格后插入。

20,对一个文件夹下的N个TXT文件进行处理,对每一个TXT里的每一行前面都加入000 ----27楼

21,分割文本,将其1到100行保存为a_1.txt,101-200行保存为a_2.txt,以此类推...

22,按如下顺序重新排列行数:1,11;2,12;...;9,19;10,20;后面的行以此类推(每20行一个周期)

23,A文本每行插入到B文本中对应行后面,例如,A的第一行插到B的第一行后面,A的第二行插到B的第二行后面,以此类推。。。
.....

问题还多者呢,先问这些,
大家能想到什么文本处理的问题就发,然后我来回答。我不会了大家回答,

大家在回答时,最好能附上一定的解释,如果自己对所用的参数比较了解,能讲解就更好了,一来方便其他人学习,二来时间长了,自己下次浏览此贴时也是个参考(只是建议,仅此)


好了,征集答案。。。

[ Last edited by plp626 on 2008-6-3 at 07:57 AM ]
第2楼 plp626 发表于 2008-05-31 04:29
银牌会员 发帖 1,020 积分 2,278
sed工具,各类帮助文档下载:
http://upload.cn-dos.net/img/498.rar

我就收集了这些:
kongge.txt
sed1line.txt
sed.exe
sed.pdf
sed_readme.txt
SED单行脚本快速参考.txt
第3楼 HAT 发表于 2008-05-31 10:01
版主 发帖 5,017 积分 9,023
3,显示文本第20行到25行之间的内容?
第4楼 HAT 发表于 2008-05-31 10:19
版主 发帖 5,017 积分 9,023
4,显示文本的奇数行?偶数行?


第5楼 HAT 发表于 2008-05-31 10:24
版主 发帖 5,017 积分 9,023
5,在文本里包含"爱你"的字符换成”【爱你】“,包含“恨你”的字符换成"(恨你)"输出?
第6楼 HAT 发表于 2008-05-31 10:28
版主 发帖 5,017 积分 9,023
6,将文本里的这些字符%:^?<>*/\|&全部替换为空格?
第7楼 HAT 发表于 2008-05-31 13:15
版主 发帖 5,017 积分 9,023
10,将每一行首、尾、的所有空格删除?
第8楼 HAT 发表于 2008-05-31 13:16
版主 发帖 5,017 积分 9,023
11,给每一行的开头加上"echo"?
第9楼 HAT 发表于 2008-05-31 13:18
版主 发帖 5,017 积分 9,023
12,如果某行的行尾是以"。"结尾,就删除"。"
第10楼 joyn 发表于 2008-05-31 13:18
中级用户 发帖 105 积分 280 来自 广西
外部命令......
第11楼 radem 发表于 2008-05-31 18:15
高级用户 发帖 383 积分 691
下来学习。。。
第12楼 vkill 发表于 2008-05-31 19:38
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
10,将每一行首、尾、的所有空格删除?
第13楼 terse 发表于 2008-05-31 21:24
银牌会员 发帖 946 积分 2,404
sed命令好难懂
如果某行的行尾是以"。"结尾,就删除"。"
第14楼 slore 发表于 2008-05-31 22:11
铂金会员 发帖 2,478 积分 5,212
VBS...飘过……


9. 替换 回车+我,我
第15楼 pooronce 发表于 2008-05-31 22:15
中级用户 发帖 250 积分 484
13


sed不支持大括号确定字符数,所以只好用10个点来代表10个字符了,用\( \)括起来自动编号为第一组,也就是说把10个字符后面的都清空了。

[ Last edited by pooronce on 2008-6-1 at 09:11 PM ]
1 2 3 4  下一页
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023