中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 关于"sed"命令合并文本文件上下行的问题
<<   [1] [2] [3]  >>   >
作者:
标题: 关于"sed"命令合并文本文件上下行的问题 上一主题 | 下一主题
youaoyi
初级用户





积分 154
发帖 67
注册 2007-10-31
状态 离线
『楼 主』:  关于"sed"命令合并文本文件上下行的问题

sed -e :a -e "/\\$/N; s/\\\n//; ta" 可以将行尾为“\”文本的下一行合并到上一行, 请教:怎样改才能同时将行首为“|”的合并到上一行 ??? 另外还要删除文本中所有的空行 急用 拜托了 -= 样本文本见附件 =- [ Last edited by youaoyi on 2008-8-17 at 04:01 PM ]


附件 1: a2.rar (2008-8-17 16:01, 458 bytes,下载次数: 25)
2008-8-17 01:40
查看资料  发短消息  网志   编辑帖子  回复  引用回复
youaoyi
初级用户





积分 154
发帖 67
注册 2007-10-31
状态 离线
『第 2 楼』:  

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 ]


2008-8-17 04:11
查看资料  发短消息  网志   编辑帖子  回复  引用回复
youaoyi
初级用户





积分 154
发帖 67
注册 2007-10-31
状态 离线
『第 3 楼』:  

sed "/^$/d" 文件.txt 单独执行这个,确实能把所有空行删除掉。


2008-8-17 04:20
查看资料  发短消息  网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 4 楼』:  

sed -e :a -e "/\\$/N; s/\\\n//; ta" 可以将行首为“\”的文本合并到上一行
你听别人说的?还是自己亲自试验过?




2008-8-17 11:54
查看资料  发短消息  网志   编辑帖子  回复  引用回复
youaoyi
初级用户





积分 154
发帖 67
注册 2007-10-31
状态 离线
『第 5 楼』:  

是自己试验过 这个是把行尾为“\”的下一行合并到上一行


2008-8-17 12:51
查看资料  发短消息  网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 6 楼』:  

这样可以吗?
sed "/^$/d" a.txt|sed -e :a -e "/\\$/N; s/\\\n/\\/; ta"|sed ":a;$!N;s/\n|/|/;ta;P;D"




2008-8-17 13:03
查看资料  发短消息  网志   编辑帖子  回复  引用回复
youaoyi
初级用户





积分 154
发帖 67
注册 2007-10-31
状态 离线
『第 7 楼』:  

不行 命令无效 样本如下,最终求生成9条不含空行的文本, 文本中数据行的第一位是已经编好的序号。 [ Last edited by youaoyi on 2008-8-17 at 04:01 PM ]


附件 1: a2.rar (2008-8-17 16:01, 458 bytes,下载次数: 2)
2008-8-17 13:34
查看资料  发短消息  网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 8 楼』:  

按照你的规则,应该是10行啊,"徐"和"秀清"中间的那个换行不符合删除要求啊。




2008-8-17 13:45
查看资料  发短消息  网志   编辑帖子  回复  引用回复
youaoyi
初级用户





积分 154
发帖 67
注册 2007-10-31
状态 离线
『第 9 楼』:  

是的 整理例子时 忘记在这条数据后“徐”之后加上“\”了,抱歉。 已经更改了附件


2008-8-17 14:54
查看资料  发短消息  网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 10 楼』:  

你的sed版本的问题吧
Microsoft Windows XP [Version 5.1.2600] (C) Copyright 1985-2001 Microsoft Corp. C:\ProgramMy\GnuWin32>sed "/^$/d" a.txt|sed -e :a -e "/\\$/N; s/\\\n//; ta"|sed ":a;$!N;s/\n|/|/;ta;P;D" 1|370105|倒闭|经济原因|韩翌|200537015018509|49307.5| 2|370108|倒闭|其它:|丁伟东|20083701085005903|10.0| 3|370707|倒闭|其它:|陈汝\芳|2008370707000949|10.0| 4|372407|倒闭|其它:|徐秀清|2008375007437|1990.0| 5|372804|倒闭|经济原因|洪振飞|2002372878229|2550.0| 6|372407|倒闭|其它:|边爱玲|200837215015010082|3990.0| 7|372909|倒闭|其它:|杨留更|200837290015002744|9990.0| 8|370454|倒闭|其它:|孟庆国|200837045015000127|10.0| 9|370454|倒闭|其它:|孟庆国|2008370405015000127|10.0| C:\ProgramMy\GnuWin32>sed --version GNU sed version 4.1.5 Copyright (C) 2003 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, to the extent permitted by law.
[ Last edited by HAT on 2008-8-17 at 03:50 PM ]




2008-8-17 15:48
查看资料  发短消息  网志   编辑帖子  回复  引用回复
youaoyi
初级用户





积分 154
发帖 67
注册 2007-10-31
状态 离线
『第 11 楼』:  

不是的 麻烦下载下附件 a2.txt 原来的是我手工录入的,可以达到目的。 但是第10条之后的是原本的数据,就不行了。


2008-8-17 16:03
查看资料  发短消息  网志   编辑帖子  回复  引用回复
youaoyi
初级用户





积分 154
发帖 67
注册 2007-10-31
状态 离线
『第 12 楼』:  

一楼、七楼都已经更新了附件。


2008-8-17 16:05
查看资料  发短消息  网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 13 楼』:  

你是说"徐慧"那一行对吧,那里有一个Windows下不可见的字符,你用16进制编辑器打开看看就知道了。 你把"|徐慧|"删除,重新输入一遍就可以了。




2008-8-17 16:16
查看资料  发短消息  网志   编辑帖子  回复  引用回复
youaoyi
初级用户





积分 154
发帖 67
注册 2007-10-31
状态 离线
『第 14 楼』:  

是的,但是象这种情况在文本中非常非常多, 这种不可见的字符,能否在sed处理时一并删除掉呢? 数据量很大,拜托了。


2008-8-17 16:18
查看资料  发短消息  网志   编辑帖子  回复  引用回复
HAT
版主





积分 9023
发帖 5017
注册 2007-5-31
状态 离线
『第 15 楼』:  

你的文本文件是不是从Linux或者Unix系统里面拷过来的?




2008-8-17 16:19
查看资料  发短消息  网志   编辑帖子  回复  引用回复
<<   [1] [2] [3]  >>   >
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: