Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3031832
  • 博文数量: 272
  • 博客积分: 5544
  • 博客等级: 大校
  • 技术积分: 5496
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-08 00:48
个人简介

  每个人都要有一个骨灰级的爱好,不为金钱,而纯粹是为了在这个领域享受追寻真理的快乐。

文章分类

全部博文(272)

文章存档

2015年(2)

2014年(5)

2013年(25)

2012年(58)

2011年(182)

分类: LINUX

2012-07-28 16:25:42

cat file 
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5


如何去掉第一行和第四行的第三和第四个内容:
1 2 5
1 2 3 4 5
1 2 3 4 5
1 2 5
1 2 3 4 5




  1. sed -e{,}{1,4}'s/\S\+ *//3' file
[解析]
我们的目的是要操作第一行和第四行,在sed中可以直接以数字作为pattern代表对某行的操作,这个sed命令在执行的时候先由shell展开,成为如下命令:
sed -e1s/\S\+ *//3
    -e4s/\S\+ *//3
    -e1s/\S\+ *//3
    -e4s/\S\+ *//3 file
我这样写是为了方便大家阅读,加了换行和缩进,因为sed有多个操作,所以加上 -e 参数,当是第一行的时候,相当于执行了两次对第三字段的替换,也就是替换了第三、四字段,到了第四行也同样执行,非常精巧的思路,很好的利用了shell展开




  1. awk 'NR==1||NR==4{$3=$4=""}1' file
[解析]
这个是常规的awk思路。







阅读(4467) | 评论(4) | 转发(3) |
给主人留下些什么吧!~~

狼眼不发光2016-02-17 12:53:01

豁然开朗,顶~

zooyo2012-09-05 12:42:56

YLR_Really: awk 'NR==1||NR==4{$3=$4=""}1' file

请教一下,最后“file”前面的“1”起到什么作用?.....
了解一下awk的执行模式,pattern{action}.1是条件为真,默认执行的action是print $0.

YLR_Really2012-09-05 11:26:25

awk 'NR==1||NR==4{$3=$4=""}1' file

请教一下,最后“file”前面的“1”起到什么作用?

kk52342012-08-09 13:21:59

顶!学习!