Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1308904
  • 博文数量: 268
  • 博客积分: 10698
  • 博客等级: 上将
  • 技术积分: 2867
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-14 22:21
文章分类

全部博文(268)

文章存档

2012年(19)

2011年(13)

2010年(29)

2009年(26)

2008年(99)

2007年(82)

我的朋友

分类:

2008-08-23 01:14:12

有时候我们从网页上拷贝的资料,刚放到一个文本文件里的时候,变成这个样子,以一个竖行列出:
# cat data
1


2
                  
3

4


5
6

7

8
我们想把它们放到一行里,简单的办法可以:
# cat data | tr '\n' ' ' 或
# cat data | xargs echo 
然后再用sed 或者 tr 去掉其中的空格,最后变成
12345678
这就是我们想要的了。
这个效果也可以用sed作,与前面的方法比起来,它可以一气呵成(不用管道),GNU sed能够直接写入文件,这个语句用到了label:
# sed ':1;N;s/\n//;$!b1;s/\s*//g' data
其中,sed ':1;N;s/\n//;b1' 是同 cat data | tr '\n' ' ' 一样的效果。
而需要删除空格,则以$!作为label的限定条件,处理到最后一行的时候,b1;后面的语句得以执行。
阅读(2339) | 评论(0) | 转发(0) |
0

上一篇:Debian十五年

下一篇:[Perl脚本] 作品6号

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