sed命令的用法

Sed命令

简介

sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为模式空间pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并没有改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操作;编写转换程序等。

定址

可以通过定址来定位你所希望编辑的行,该地址用数字构成,用逗号分隔的两个行数表示以这两行为起止的行的范围(包括行数表示的那两行)。如13表示123行,美元符号($)表示最后一行。范围可以通过数据,正则表达式或者二者结合的方式确定。

Sed调用方式

Sed [options] ‘command’ file(s)

Sed [options] �Cf scriptsfile files

命令

a  在当前行后加入一行文本,如 sed ‘1a I am chinese’ aa,其意思就是在aa文件的第一行加上‘I am chinese’,然后把aa内容显示在屏幕上,注意:只是显示在屏幕上的改变,原文件的内空不变。

d 删除当前的行,如sed ‘$d’ aa ,删除aa的最后一行,把删除后的内空显示出来,当然原文件不受影响

i 在当前行上面插入文本,如sed ‘2i  hello!’ aa,在aa文件的内容的第2行上面加入一行hello!,并显示出来。

p  列印,亦即将某个选择的资料印出。通常 p 会与参数 sed -n 一起运作~
s  取代,可以直接进行取代的工作哩!通常这个 s 的动作可以搭配正规表示法!例如1,20s/old/new/g 就是啦!

常见选项

-n使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到屏幕上。但如果加上 -n 参数后,则只有经过sed 特殊处理的那一行(或者动作)才会被列出来。
-e
允许多台编辑,如sed -e'/test/h' -e '/check/x' example -----互换模式空间和保持缓冲区的内容。也就是把包含testcheck的行互换。
-f
直接将 sed 的动作写在一个档案内, -f filename 则可以执行 filename 内的sed 动作;
-r
sed 的动作支援的是延伸型正规表示法的语法。(预设是基础正规表示法语法)
-i
直接修改读取的档案内容,而不是由萤幕输出。


你可能感兴趣的:(sed,网络技术)