免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
论坛 程序设计 Shell 换行
123下一页
最近访问板块 发新帖
查看: 4316 | 回复: 23
打印 上一主题 下一主题

换行 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-05-14 15:30 |只看该作者 |倒序浏览
示例文件如下
asdf llll  dddd  iiii
aaa  bbbb  cccc dddd
asb
         ccc    fff    ffff
asdfj   asdf  asdf   asdf

如果某行的第一个字符为空,就把这一行补到上一行,中间用空格或TAB键隔开,一句正则怎么实现?

论坛徽章:
0
2 [报告]
发表于 2009-05-14 15:41 |只看该作者

  1. awk -v RS="###" '{gsub("\n[ \t]+","\t");print}' URFILE
复制代码

论坛徽章:
0
3 [报告]
发表于 2009-05-14 15:43 |只看该作者

回复 #1 a251235308 的帖子

grep -EB1 '^ +' urfile | sed -n 'N;s/\n/\t/p'

[ 本帖最后由 greendays 于 2009-5-14 15:45 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2009-05-14 15:44 |只看该作者

  1. xargs -n 4 < URFILE
复制代码

论坛徽章:
0
5 [报告]
发表于 2009-05-14 15:56 |只看该作者

回复 #2 kwokcn 的帖子

非常感谢。。
能解释一下么?

论坛徽章:
0
6 [报告]
发表于 2009-05-14 16:14 |只看该作者

回复 #5 a251235308 的帖子

awk -v RS="###" '{gsub("\n[ \t]+","\t");print}' URFILE
好代码!!
ps: -v  开始定义变量RS="###" ,这个目的是把全文当作一条记录。
gsub("\n[ \t]+","\t")  全局替换函数,把 \n加一个或多个空格或者是\n加一个或多个\t 替换成\t
print 处理之后打印

论坛徽章:
0
7 [报告]
发表于 2009-05-14 16:29 |只看该作者
原帖由 greendays 于 2009-5-14 16:14 发表
awk -v RS="###" '{gsub("\n[ \t]+","\t");print}' URFILE
好代码!!
ps: -v  开始定义变量RS="###" ,这个目的是把全文当作一条记录。
gsub("\n[ \t]+","\t")  全局替换函数,把 \n加一个或多个空格或者是 ...



感谢解释。。。

论坛徽章:
0
8 [报告]
发表于 2009-05-14 16:29 |只看该作者
原帖由 kwokcn 于 2009-5-14 15:44 发表

xargs -n 4 < URFILE



这个行不通吧,这个是以4列输出文件,如果某行的第一个字符为空,后边的列数多于3就有问题了
如下:

asdf llll  dddd  iiii
aaa  bbbb  cccc dddd
asb
         ccc    fff    ffff ggg
asdfj   asdf  asdf   asdf

论坛徽章:
0
9 [报告]
发表于 2009-05-14 16:38 |只看该作者
原帖由 steel_lei 于 2009-5-14 16:29 发表



这个行不通吧,这个是以4列输出文件,如果某行的第一个字符为空,后边的列数多于3就有问题了
如下:

asdf llll  dddd  iiii
aaa  bbbb  cccc dddd
asb
         ccc    fff    ffff ggg
asdfj    ...

所有的处理都是根据楼主的例子给的,如果文件本来就简单,那何必用麻烦的方法呢?:)

论坛徽章:
0
10 [报告]
发表于 2009-05-14 16:45 |只看该作者
sed -r -e '$!N;s/(.*)\n\s+(.*)/\1 \2/;D'
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP