gpt4 book ai didi

sed:H 和 D 的行为

转载 作者:行者123 更新时间:2023-12-01 09:10:00 24 4
gpt4 key购买 nike

我的 sed 脚本是这样的:

# script.sed
1,3H
1,3g
3D

当我运行它时,我得到以下信息:

$ seq 5 | sed -f script.sed

1

1
2
4
5

然而,这对我来说似乎是错误的。在第 3 行,一旦执行了 D 命令,模式空间就有了

1
2
3

当循环重新开始时,H应该将保持空间设置为:

<empty_line>
1
2
3
1
2
3

那么,g应该将模式空间设置为相同的内容。然后 D 将删除第一行(空行)。每次重新开始循环时,保持空间都会有效地加倍。因此,这应该会导致无限循环。

我错过了什么?

最佳答案

下面,我展示了我如何解释预期的执行,以有序对的形式显示命令的结果,模式空间在前,保持空间在后:

1: H(1,\n1)  g(\n1,\n1)                                > \n1\n
2: H(2,\n1\n2) g(\n1\n2,\n1\n2) > \n1\n2\n
3: H(3,\n1\n2\n3) g(\n1\n2\n3,\n1\n2\n3) D(,\n1\n2\n3) >
4: > 4\n
5: > 5\n

如果我获取此解释的输出并将其连接到带有 -e 选项的 echo 命令中,我将得到:

$ echo -e '\n1\n\n1\n2\n4\n5\n'

1

1
2
4
5

关于sed:H 和 D 的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45290190/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com