加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

用’d’删除sed模式空间是否也可以保留空间?

发布时间:2020-12-14 01:17:59 所属栏目:Linux 来源:网络整理
导读:有人可以解释为什么会这样吗? 这是预期的: $echo -e "foonbar" | sed -n 'h; x; p'foobar 我将每一行放入保留空间,然后交换保持空间和图案空间,然后打印图案空间,以便打印每一行.现在,为什么以下不同? $echo -e "foonbar" | sed -n 'h; d; x; p' 我认为
有人可以解释为什么会这样吗?

这是预期的:

$echo -e "foonbar" | sed -n 'h; x; p'
foo
bar

我将每一行放入保留空间,然后交换保持空间和图案空间,然后打印图案空间,以便打印每一行.现在,为什么以下不同?

$echo -e "foonbar" | sed -n 'h; d; x; p'

我认为不会这样,因为我在交换之前删除了模式空间,所以无论如何应该将存储的行放回模式空间.它是x后面应该为空的保持空间,对吗?我删除了模式空间,然后交换.我保存的线路在哪里?

解决方法

使用d时,清除模式空间,读取下一行,并从脚本开头开始处理.因此,您永远不会实际到达x和p步骤,而只是复制到保留空间并删除.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读