sed命令简单使用-显示

本文将主要介绍一下sed的显示命令,样本文件为file,内容如下:

[work@ test_sed]$ cat file
one 1
two 2
three 3
one 1
two 2
two 2
three 3
[work@  test_sed]$ sed 1p file
one 1
one 1
two 2
three 3
one 1
two 2
two 2
three 3
[work@  test_sed]$ sed -n 1p file
one 1
[work@  test_sed]$ sed -n '1p' file
one 1
[work@  test_sed]$ sed -n "1p" file 
one 1

p命令是用来输出当前pattern space中的内容。1p命令用来显示第1行,大家可以观察到,sed命令如果加-n,那么将不输出其他行,否则,将输出其他行的同时,多输出一次第1行。另外,单引号、双引号、无引号三种模式下,输出结果是一样的,所以,我得出的结论是,引号添加与否,可根据个人喜好。由于见到的大部分sed命令,都用单引号标注,所以以后的命令中,都使用单引号。

 

显示第1到2行:

[work@ test_sed]$ sed -n '1,2p' file
one 1
two 2

显示第1到最后一行:
[work@ test_sed]$ sed -n '1,$p' file 
one 1
two 2
three 3
one 1
two 2
two 2
three 3

显示第2行到倒数第3行:

[work@ test_sed]$ sed -n '1!{:a;2,3!{P;N;D};N;ba}' file
two 2
three 3
one 1
two 2

该命令解释如下:1!{},表示除去第一行,执行花括号中的语句,:a为标签a,2,3!{}表示除去第2、3行执行括号中语句。命令整体的意思是,第1行不进行任何操作,将第2、3行加入到pattern space中,从第4行开始,执行P;N;D;N;ba命令,P是显示pattern space中第一行,N读取文件中的下一行追加到pattern space中,D是删除pattern space中的第一行,第二个N命令在第四行之后并没有发挥作用,因为D命令的man解释为“

Delete up to the first embedded newline in the pattern space.  Start next cycle,but skip reading from the input if there is still data in the pattern space.”,D命令后的命令将不会执行,而直接开始下一个循环。

该命令扩展为,显示第x到倒数第y行

sed -n '1,x-1!{:a;x,y+x-2!{P;N;D};N;ba}' file

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值