(六)sed的使用方法

Sed 即stream editor是一种流编辑器(行编辑器)不改变源文件的内容,非交互式编辑器,只是把文件按行读到模式空间中处理,没有破坏性。

Sed支持sed脚本,支持正则表达式,其用法如下:sed 【options】 address command filename。例如查找替换功能sed “1,13s/wang/wong/g” /etc/passwd这只是修改模式空间的内容并显示于屏幕,对于源文件没有改动。Sed –i修改源文件,sed‘1,3d’删除1到3行的字符,sed ‘1d’filename删除第一行的字符。

另外sed支持正则表达式,sed ‘ /正则表达式/command’ filename指定被匹配到的行,例如:sed ‘1/regexp/d’ filename 删除第一行到第一次匹配到正则表达式之间的行,sed ‘0/regexp/d’ filename 删除第一行到最后一次匹配到正则表达式的行。Sed还支持选行和指定范围,譬如:1~2从第一行开始隔一行选一行,3~4从第三行开始隔三行选一行。10,+9从第10行开始向下选9行。Command:sed ‘1,3p’ /etc/passwd打印第1到3行并和全文显示在屏幕上,通常和-n一起使用,sed -n ‘1,3p’ /etc/passwd只显示打印的行即只显示1到3行。Sed ‘1,3 !d’ /etc/passwd只显示第1到3行,在指定的地址后加上!表示地址取反。Sed ‘1a’\this is a new line filename在文件的第一行新增一行,sed ‘/正则表达式/a \how are you’filename在正则表达式之后新增一行,另外把a换成i就可以在对应行之前新增一行。Options:-e可以让sed运行多个命令sed –e ‘/正则表达式/a \how are you’filename –e ‘/正则表达式/d’filename一次执行多个命令并显示,在匹配到的行后新加一行并删除匹配到的行。

Sed ‘s/regexp/regexp/g’全局替换,i在查找替换不进行区分大小写。-f filename医用文件,可以把sed之后的命令放进一个文件中,每个命令一行,然后用sed –f filename可以视为多次读取并编辑文件。-r可以引用扩展正则表达式。Sed ‘s/[1-9][1-9][1-9]/&.5/g’ filename。&用于引用前面整个匹配到的正则表达式。

你可能感兴趣的:(linux,sed,使用方法,休闲,hh_linux)