sed命令简单使用-显示
2012-02-06 11:28
344 查看
本文将主要介绍一下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
[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
相关文章推荐
- sed命令简单使用-截取第n个关键字和倒数第m个关键字之前的内容
- grep、sed和awk命令的简单使用
- grep、sed和awk命令的简单使用
- sed命令简单使用
- sed命令简单使用-实现行的两两互换
- sed命令简单使用-D命令-结束本轮循环
- sed命令简单使用-不写D,那么默认执行d
- sed命令简单使用-pattern space与hold space
- sed简单使用(四)选择性显示
- sed 命令简单使用方法
- 先简单写一个,Linux下man命令使用的一些东东
- Windows 中 cmd 下 FTP 命令的简单使用
- 在linux应用程序使用system函数执行简单的shell交互命令的方法
- 如何在grep和sed命令中使用扩展的正则表达式
- 使用eclipse在jsp上显示水晶报表(一)最简单例子
- Linux 下ipcs 和ipcrm命令简单使用
- UITableViewController的使用,简单数据显示
- ping命令的几个简单使用
- Doxygen使用学习(六)------Doxygen的特殊命令字之"用于显示例子的命令"
- 【方法】_(Web网页版+GitHub For Windios客户端+Shell命令)_简单使用GitHub--克隆-上传-同步变化