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
- 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展开。
- awk 'NR==1||NR==4{$3=$4=""}1' file
[解析] 这个是常规的awk思路。
阅读(4467) | 评论(4) | 转发(3) |