sed 命令

Sed 是一个流编辑器,用于处理来自文件或者管道的标准文本的转换工作,尽管在某些方面类似于允许脚本编辑的编辑器,但是由于sed仅仅对其输入进行一次扫面,因此比起其他交互编辑器,sed更加高效。同时由于sed过滤来自管道中的文本,使得它变得与众不同。 

补充:Sed把当前处理的行存储在称为模式空间(pattern space)的临时缓冲区中。一旦sed完成对模式空间按中的行的处理,模式空间中的行就被送往屏幕(除非命令是删除行或者打印到打印机),行被处理完成以后,就被移出模式空间,程序接着读入下一行,处理、显示、移出……文件输入的最后一行被处理完以后,sed结束,通过在临时缓冲区存储每一行,然后再缓冲区中操作该行,保证原始文件不会被破坏。

 ‐n, ‐‐quiet, ‐‐silent suppress automatic printing of pattern space 

取消将模式空间中的内容自动打印出来。 解释:也就是说除非指定选项‐n,否则sed每执行到命令最后,都会输出存在于模式空间中的行,也就是处理完缓冲到模式空间中的行以后自动输出模式空间的内容,同时如果有p指令,还会在输出p指令指定的行,而当在命令行中使用‐n选项以后,这种自动工作被禁止。

例如:

[thinkit@CS234 mylib]$ sed -n '/cqq/p' makefile 
#.cqq.o:
%.cqq:%o
2.o: 2.cqq a.h b.h
# $(CC) -c 2.cqq
3.o: 3.cqq b.h c.h
# $(CC) -c 3.cqq

3. Sed命令
调用sed命令有两种形式:
*
sed [options] 'command' file(s)
*
sed [options] -f scriptfile file(s)

a\
在当前行后面加入一行文本。

[thinkit@CS234 mylib]$ sed '1a\where are you from' makefile 

p
打印模板块的行。

d
从模板块(Pattern space)位置删除行。

4. 选项
-e command, --expression=command
允许多台编辑。
-h, --help
打印帮助,并显示bug列表的地址。
-n, --quiet, --silent
取消默认输出。

-f, --filer=script-file
引导sed脚本文件名。
-V, --version
打印版本和版权信息。 

6. 实例
删除:d命令
*
$ sed '2d' example-----删除example文件的第二行。
*
$ sed '2,$d' example-----删除example文件的第二行到末尾所有行。
*
$ sed '$d' example-----删除example文件的最后一行。
*
$ sed '/test/'d example-----删除example文件所有包含test的行。
替换:s命令
*
$ sed 's/test/mytest/g' example-----在整行范围内把test替换为mytest。如果没有g标记,则只有每行第一个匹配的test被替换成mytest。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值