免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 2652 | 回复: 11
打印 上一主题 下一主题

跪求:文本处理问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-10-29 00:30 |只看该作者 |倒序浏览
请问怎么把下面内容的文本
123        "abc456"        edf
abc        "123abc
"        456
789        "xyz"        uvw
处理成
123        "abc456"        edf
abc        "123abc"        456
789        "xyz"        uvw
也就是说把两个双引号之间的换行去掉。
希望能用sed、awk、或tr进行处理。

[ 本帖最后由 zhuyongxin 于 2009-10-29 00:32 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2009-10-29 00:55 |只看该作者
sed  ':a;/\".*"/!{N;s/\n//;ba}' urfile
123        "abc456"        edf
abc        "123abc"        456
789        "xyz"        uvw

论坛徽章:
0
3 [报告]
发表于 2009-10-31 21:15 |只看该作者
大侠能不能给解释一下?

论坛徽章:
0
4 [报告]
发表于 2009-10-31 22:18 |只看该作者
原帖由 haimming 于 2009-10-29 00:55 发表
sed  ':a;/\".*"/!{N;s/\n//;ba}' urfile
123        "abc456"        edf
abc        "123abc"        456
789        "xyz"        uvw



这里好像不一定要用标签和b吧。另外 第一个双引号前面的 \ 是什么意思,为什么第2个双引号前面就没有

刚才bash下面试了一下   sed '/".*"/!{N;s/\n//}' urfile 也能实现啊

麻烦哪位大哥帮指点一下,谢谢

论坛徽章:
0
5 [报告]
发表于 2009-10-31 22:38 |只看该作者

回复 #4 tinyhuang 的帖子

谢谢指正:\".*"中的\确是多余的
另外,对于这段文字,你的更简洁,但下面的呢
cat data
123        "abc456"        edf
abcd
abc        "123abc
abcd
"        456
abcd
789        "xyz"        uvw
abcd

论坛徽章:
0
6 [报告]
发表于 2009-11-01 09:17 |只看该作者

回复 #2 haimming 的帖子

如果文件内容是这样的:
"ab" "cd
ef" "gh
ij"

论坛徽章:
0
7 [报告]
发表于 2009-11-01 09:48 |只看该作者
cat ta.txt

ss
"ab" "cd
ef
" "gh
ij" "ff

sed  '/"/!b;:a;h;s/"[^"]*"//g;/"/!{x;s/\r\?\n//g;b}; x;${s/\r\?\n//g;b};N;ba' ta.txt

ss
"ab" "cdef" "ghij" "ff

[ 本帖最后由 curclew 于 2009-11-1 17:58 编辑 ]

论坛徽章:
0
8 [报告]
发表于 2009-11-01 11:47 |只看该作者
谢谢各位大侠的热心帮助!

论坛徽章:
0
9 [报告]
发表于 2009-11-01 15:52 |只看该作者

回复 #6 curclew 的帖子

这样要求达到什么效果?

论坛徽章:
0
10 [报告]
发表于 2009-11-01 17:46 |只看该作者

回复 #9 haimming 的帖子

你把问题想得过于简单了。忽视了每行可以有两个以上引号的情况。

我给的代码也有错误,
稍微改正下:
sed  '/"/!b;:a;h;s/"[^"]*"//g;/"/!{x;bb}; x;$bb;N;ba;:b;s/\r\?\n//g;' ta.txt
感觉用awk效率用更高。

[ 本帖最后由 curclew 于 2009-11-1 17:56 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP