linux命令-sed

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux命令-sed相关的知识,希望对你有一定的参考价值。

sed :stream editor for filtering and transforming text  流编辑器文本转换工具

sed不适用-i的情况下,不对源文件做修改,只将处理结果打印至屏幕,使用-i时将直接修改源文件,属于危险做法,用于脚本中修改配置文件,初学者不建议。

sed使用方法:

    sed范围修改打印:

        直接打印文件第四行:sed -n‘4p’path_to_file

        只删除第四行至下一行的数据(包括下一个空行),打印其他数据 :sed ‘4,/^$/d’ /path_to_file

        不打印第四行至下一行的数据(包括下一个空行) :sed -n ‘4,/^$/!p‘ /path_to_file

        只显示第四行到下一个空行的数据(包括下一个空行)不删除只打印这些 :sed ‘4,/^$/!d‘ /path_to_file

        第一次被pattern匹配到的行开始,到第二次被pattern匹配到的行结束,中间的所有行 :/Pattern1/,/Pattern2/

   sed参数:

           -n :--quiet, --silent :静默模式 不再默认显示模式中的内容

           -r :use extended regular expressions in the script.使用扩展正则表达式

   sed替换:

          sed -r ‘s/regexp/replacement/g‘ /path_to_file  :sed -r ‘s/[[:space:]]+//g‘ file 去掉行首的空白字符

          sed检索合并实例:cat /etc/inittab |sed -r ‘s/^#//g;s/^[[:space:]]+//g;/^$/d‘ :去掉文件inittab文件中的开头的#号,开头的空白字符以及空行

    sed将范围内某个单词修改或去掉 :sed -i ‘2,3s/\<nameserver\> //g‘ /etc/resolv.conf  :

将2至3行的nameserver去掉

    sed加修饰符:g:全局替换

                 i:忽略字符大小写

    sed后向应用:

                 sed ‘s#\(pattern\)#\1XX#g’ file        

    sed其他:a \string:在指定的行后面追加新行,内容为“string”

             i \string  :在指定的行前面添加新行,内容为“srting”

以上是关于linux命令-sed的主要内容,如果未能解决你的问题,请参考以下文章

linux shell sed命令的问题!

linux sed 替换

如何用sed命令替换一行中的某个字符串

sed命令在mac和linux下的区别

关于Linux里的sed命令。

linux之文本内容替换命令sed