Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2072864
  • 博文数量: 470
  • 博客积分: 10206
  • 博客等级: 上将
  • 技术积分: 5620
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-03 12:50
文章分类

全部博文(470)

文章存档

2012年(1)

2011年(18)

2010年(47)

2009年(404)

分类:

2009-05-14 16:33:09

  帅哥
圣骑士



CU编号: 697092
注册:2008-4-25
最后登录: 2009-05-14
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-5-14 15:30 
示例文件如下
asdf llll  dddd  iiii
aaa  bbbb  cccc dddd
asb
         ccc    fff    ffff
asdfj   asdf  asdf   asdf

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



您对本贴的看法:

__________________________________

...我本无意与众不同
                   怎奈何品位出众...


| |
(狼烟)
风云使者
披着狼皮的羊



CU编号: 547805
注册:2007-4-5
最后登录: 2009-05-14
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-5-14 15:41 


CODE:
awk -v RS="###" '{gsub("\n[ \t]+","\t");print}' URFILE




您对本贴的看法:
| |
  帅哥
精灵王




CU编号: 690903
注册:2008-4-13
最后登录: 2009-05-14
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]       顶部
发表于 2009-5-14 15:43 
回复 #1 a251235308 的帖子

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

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



您对本贴的看法:
| |
(狼烟)
风云使者
披着狼皮的羊



CU编号: 547805
注册:2007-4-5
最后登录: 2009-05-14
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-5-14 15:44 


CODE:
xargs -n 4 < URFILE




您对本贴的看法:
| |
  帅哥
圣骑士



CU编号: 697092
注册:2008-4-25
最后登录: 2009-05-14
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-5-14 15:56 
回复 #2 kwokcn 的帖子

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



您对本贴的看法:

__________________________________

...我本无意与众不同
                   怎奈何品位出众...


| |
  帅哥
精灵王




CU编号: 690903
注册:2008-4-13
最后登录: 2009-05-14
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]       顶部
发表于 2009-5-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 处理之后打印



您对本贴的看法:
| |
  帅哥
圣骑士



CU编号: 697092
注册:2008-4-25
最后登录: 2009-05-14
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-5-14 16:29 


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

感谢解释。。。



您对本贴的看法:

__________________________________

...我本无意与众不同
                   怎奈何品位出众...


| |
  帅哥
圣骑士



CU编号: 464023
注册:2006-9-10
最后登录: 2009-05-14
帖子:
精华:0







状态:...在线...

[] [] [博客]


[]     顶部
发表于 2009-5-14 16:29 


QUOTE:
原帖由 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



您对本贴的看法:
阅读(467) | 评论(0) | 转发(0) |
0

上一篇:awk 'NR>1{print $5+0}' urfile

下一篇:换行

给主人留下些什么吧!~~