1. <span id='milij'></span><fieldset id='milij'></fieldset>

      <code id='milij'><strong id='milij'></strong></code>

        <dl id='milij'></dl>

      1. <i id='milij'></i>
        <acronym id='milij'><em id='milij'></em><td id='milij'><div id='milij'></div></td></acronym><address id='milij'><big id='milij'><big id='milij'></big><legend id='milij'></legend></big></address>
      2. <tr id='milij'><strong id='milij'></strong><small id='milij'></small><button id='milij'></button><li id='milij'><noscript id='milij'><big id='milij'></big><dt id='milij'></dt></noscript></li></tr><ol id='milij'><table id='milij'><blockquote id='milij'><tbody id='milij'></tbody></blockquote></table></ol><u id='milij'></u><kbd id='milij'><kbd id='milij'></kbd></kbd>
            <i id='milij'><div id='milij'><ins id='milij'></ins></div></i>

          1. <ins id='milij'></ins>

            Linux下sed命令使用全解析

            • 时间:
            • 浏览:5
            • 来源:124软件资讯网

                一、Sed简介

                Sed:Stream Editor 流式编辑器 又称行编辑器  ,每次只编辑一行  。Sed事情是在“模式空间”中举行的  ,并不操作源文件  。对源文件无危害  。

                二、Sed使用花样

                Sed下令的常用花样如下:

                (1)Sed [options] ‘script’ input_file…

                (2)Sed [options] –f script_file input_file…

                (3)Sed [options] ‘ADDR1,ADDR2command’ input_file…

                例如:#sed ’1,2d’ fstab 就可以将fstab的前两行删除并显示出来  ,可是它不会改变源文件  。

                #Sed ‘1,2!d’ fstab 表现删除除第一行和第二行之外的所有行  。

                (4)Sed [options] ‘/PATTERN/command’ input_file……

                &:s/l..e/&er/:表现引用前面匹配到的所有字符  。

                例如:sed ‘/[[:upper:]]/d’ binary.sh 表现删除所有的大写字母的行  。

                (5)Sed ‘/PATTERN1/,/PATTERN2/command’ input_file……

                说明:这表现从第一次被PATTERN1匹配到的行到第一次被PATTERN2匹配到的中心的所有行执行command下令 。

                三、Sed的常用选项:

                -n:只显示sed匹配到的行  。其余行不显示 。下文有规范  。

                -i :可以直接操作原文件  。默认情形下sed不会改变原文件  ,可是-i选项可以修改原文件  ,此选项应慎用  。

                -r:可以使用尺度正则表达式  。默认情形下sed只支持基本正则表达式 ,可是加上-r选项后则支持扩展正则表达式

                -e:多剧本共用  。可以同时执行多个下令 。例如:

                代码如下:

                [root@localhost ~]# sed -e 's@\@H\1@g' -e 's@\(l..e\)\.@\1r.@g' test

                He love His lover.

                She like Her liker.

                Dove love Her liker.

                也可以这样用 ,中心用分号离隔:

                代码如下:

                [root@localhost ~]# sed 's@\@H\1@g;s@\(l..e\)\.@\1r.@g' test

                四、使用示例

                代码如下:

                #sed -e 下令行处置惩罚 -a 新增

                > sed -e '$ a widuu' test.txt #在test.txt的末端处添加widuu


                代码如下:

                # 把-e换成-n

                > sed -n '$ a widuu' test.txt # 只显示被处置惩罚的一行


                代码如下:

                # -c 替换几多行 为你制订的字符串,这里我的test.txt内容如图

                > sed -e '2,5c xiaowei' test.txt #把2-5行替换成字符串xiaowei


                代码如下:

                # 多下令执行 -e

                > sed -e '2,5c xiaowei' -e 's/cccc/widuu/' test.txt


                代码如下:

                # -i 不输出 -s 替换

                >sed -i 's/111111/widuu/g' test.txt


                代码如下:

                # i 插入 自界说的字符串 在test.txt的第二行插入xiaowei

                > sed -e '2i xiaowei' test.txt


                代码如下:

                # d 删除输入任何字符串

                > sed -e '2d' test.txt #删除第二行