sed 函数参数 x 的几点愚见

     sed 有许多的函数参数。不过今天主要讲 5 个,即 h ,H,g,G,x

      函数参数 h

          表示将模式空间(pattern space)的数据行 复制 到保持空间(hold space)。

     函数参数 H

          表示将模式空间(pattern space)的数据行 附加 到保持空间(hold space)。

     函数参数 g

          表示将保持空间(hold space)的数据行 复制 到模式空间(pattern space)。

      函数参数 G

          表示将保持空间(hold space)的数据行 附加 到模式空间(pattern space)。

      以上四个参数都比较简单,下面重点介绍函数参数 x:

      函数参数 x

           表示将模式空间(pattern space)与保持空间(hold space)内的内容互相交换。举个例子,我要将下面数据行的第 1 行和第 3 行互换。

    数据行为:

      The

      Unix

      and

      Linux

      Operating

      System

     上面数据行保存在文件 test 中。那么,sed 命令如下:

    

sed -e '1h' -e '3x'  test
      上面例子中,1h 表示当数据行进入 pattern space 后,第 1 行的数据就复制到 hold space。然后输出 pattern space 的内容,直到第 3 行,由于有 3x 参数,表示将 pattern

space 的第 3 行与 hold space 的数据行交换。那么此时输出的 pattern space 的第 3 行 实际上就是 hold space 的第 1 行数据,即 The。余下的行未作处理,按原来顺序输出。

这样,就完成了第 1 行与第 3 行的交换。

        有兴趣的读者可以思考如下两个问题,来加深对函数参数 x  或者说是对 pattern space 和 hold space 的更进一步的理解。

问题一:

sed -e '1,2h' -e '4,6x' test

问题二:

sed -e '1,2H' -e '2,5x' test


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值