sed的工作模式:逐行复制文件到sed编辑器的pattern space(模式空间)进行匹配,不能匹配的行文件默认显示到标准输出,我们也可也加(-n)禁止输出;能匹配到的行文件编辑后显示到标准输出,或者输出到sed编辑器的hold space(保持空间)中 ,通过模式空间与保持空间的互调能将匹配到的文件用更高级的方式显示到标准输出。

            sed [OPTION]...  'script'  [input-file] ...

sed不管文件能不能被匹配到,都会显示到标准输出。所以在使用参数p是需要加-n选项

wKioL1Z_s_DD4LNJAACiaHUFosY509.jpg删除:

             删除匹配到的文件的最后一行  ~]# sed '$d' yum.conf

wKiom1Z_tA3BOQEMAADcZcJ6U8I715.jpg

             删除匹配到的文件的1到10行  ~]# sed '1,10d' yum.conf 

行编辑器sed_第1张图片

             删除匹配到的文件的偶数行 ~]# sed '1~2d' yum.conf

行编辑器sed_第2张图片

              删除匹配到的文件的奇数行~]# sed '2~2d' yum.conf

行编辑器sed_第3张图片

插入和追加:

            在匹配到的文件的行后面追加指定的文本 ~]# sed '2~2a\GOOD' yum.conf

行编辑器sed_第4张图片


            在匹配到的文件的行前面插入指定的文本 ~]# sed '2~2i\GOOD' yum.conf 

行编辑器sed_第5张图片

            将匹配到的文件的行替换成指定的文本     ~]# sed '2~2c\GOOD' yum.conf  

行编辑器sed_第6张图片

            显示匹配到的每行的行号            ~]# sed '2~2=' yum.conf 

行编辑器sed_第7张图片

写入文件并保存到指定的文件中

            将文件最后一行保存到y.conf中  ~]# sed '$w /y.conf' yum.conf

wKiom1Z_tJqz7FZRAACRsYyCgl8702.jpg

            将文件y.conf的内容写入到yum.conf文件中的第一行  ~]# sed '1r /y.conf' yum.conf 

wKiom1Z_tKqhAElWAACrRqq37vM869.jpg

最后sed还支持扩展正则表达式,如:将yum.conf文件中以#号开头的行及#号后所有空白字符替换成~

            ~]# sed 's@^#[[:space:]]*@~@' yum.conf 

行编辑器sed_第8张图片