![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-09 12:57 |
共 47,811 主题排行 / 349,895 发帖 / 今日 0 篇 / 48,254 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 关于"sed"命令合并文本文件上下行的问题 |
| 可打印版本 2,694 / 36 |
| 第1楼 youaoyi | 发表于 2008-08-17 01:40 |
| 初级用户 发帖 67 积分 154 | |
|
关于"sed"命令合并文本文件上下行的问题 sed -e :a -e "/\\$/N; s/\\\n//; ta"
可以将行尾为“\”文本的下一行合并到上一行, 请教:怎样改才能同时将行首为“|”的合并到上一行 ??? 另外还要删除文本中所有的空行 急用 拜托了 -= 样本文本见附件 =- [ Last edited by youaoyi on 2008-8-17 at 04:01 PM ] 附件 a2.rar (458 bytes) |
|
| 第2楼 youaoyi | 发表于 2008-08-17 04:11 |
| 初级用户 发帖 67 积分 154 | |
|
sed -e :a -e "/\\$/N; s/\\\n//; ta" -e "$!N;s/\n|/|/;ta" -e "P;D" -e "/./!d" 文件.txt
寻思着修改了一个,但是不管用,不知道什么原因。 [ Last edited by youaoyi on 2008-8-17 at 04:27 AM ] |
|
| 第3楼 youaoyi | 发表于 2008-08-17 04:20 |
| 初级用户 发帖 67 积分 154 | |
|
sed "/^$/d" 文件.txt
单独执行这个,确实能把所有空行删除掉。 |
|
| 第4楼 HAT | 发表于 2008-08-17 11:54 |
| 版主 发帖 5,017 积分 9,023 | |
sed -e :a -e "/\\$/N; s/\\\n//; ta" 可以将行首为“\”的文本合并到上一行 你听别人说的?还是自己亲自试验过? |
|
| 第5楼 youaoyi | 发表于 2008-08-17 12:51 |
| 初级用户 发帖 67 积分 154 | |
|
是自己试验过
这个是把行尾为“\”的下一行合并到上一行 |
|
| 第6楼 HAT | 发表于 2008-08-17 13:03 |
| 版主 发帖 5,017 积分 9,023 | |
|
这样可以吗?
|
|
| 第7楼 youaoyi | 发表于 2008-08-17 13:34 |
| 初级用户 发帖 67 积分 154 | |
|
不行 命令无效
样本如下,最终求生成9条不含空行的文本, 文本中数据行的第一位是已经编好的序号。 [ Last edited by youaoyi on 2008-8-17 at 04:01 PM ] 附件 a2.rar (458 bytes) |
|
| 第8楼 HAT | 发表于 2008-08-17 13:45 |
| 版主 发帖 5,017 积分 9,023 | |
|
按照你的规则,应该是10行啊,"徐"和"秀清"中间的那个换行不符合删除要求啊。
|
|
| 第9楼 youaoyi | 发表于 2008-08-17 14:54 |
| 初级用户 发帖 67 积分 154 | |
|
是的 整理例子时 忘记在这条数据后“徐”之后加上“\”了,抱歉。
已经更改了附件 |
|
| 第10楼 HAT | 发表于 2008-08-17 15:48 |
| 版主 发帖 5,017 积分 9,023 | |
|
你的sed版本的问题吧
Microsoft Windows XP [ Last edited by HAT on 2008-8-17 at 03:50 PM ] |
|
| 第11楼 youaoyi | 发表于 2008-08-17 16:03 |
| 初级用户 发帖 67 积分 154 | |
|
不是的 麻烦下载下附件 a2.txt
原来的是我手工录入的,可以达到目的。 但是第10条之后的是原本的数据,就不行了。 |
|
| 第12楼 youaoyi | 发表于 2008-08-17 16:05 |
| 初级用户 发帖 67 积分 154 | |
|
一楼、七楼都已经更新了附件。
|
|
| 第13楼 HAT | 发表于 2008-08-17 16:16 |
| 版主 发帖 5,017 积分 9,023 | |
|
你是说"徐慧"那一行对吧,那里有一个Windows下不可见的字符,你用16进制编辑器打开看看就知道了。
你把"|徐慧|"删除,重新输入一遍就可以了。 |
|
| 第14楼 youaoyi | 发表于 2008-08-17 16:18 |
| 初级用户 发帖 67 积分 154 | |
|
是的,但是象这种情况在文本中非常非常多,
这种不可见的字符,能否在sed处理时一并删除掉呢? 数据量很大,拜托了。 |
|
| 第15楼 HAT | 发表于 2008-08-17 16:19 |
| 版主 发帖 5,017 积分 9,023 | |
|
你的文本文件是不是从Linux或者Unix系统里面拷过来的?
|
|
| 1 2 3 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |