gpt4 book ai didi

shell - 用 sed 显示一行两个

转载 作者:行者123 更新时间:2023-12-04 16:16:50 25 4
gpt4 key购买 nike

我试图理解一个 shell 命令:sed -n 'p;n'
有了这个,你将能够在两行打印,我试图了解它的命令是如何工作的( n;p ),为什么它有这种行为。

例如,如果我正在做 p;n;n , 它将选择三行中的一行,但 p;p;n它将打印两次第一行,隐藏第二行,打印两次第三行等等,为什么它不打印第一行和第二行,并隐藏第三行?

我希望我有点清楚,如果有人可以帮助我,很难解释我的问题。

最佳答案

sed -n 'p;n'
-n抑制所有未显式打印的输出。
'p;n'是在每个输入行上运行的 sed 脚本。分号是两个命令之间的分隔符,pn .
p 版画 当前行,而不移动到下一行。
n移至 下一个 行而不打印任何内容。

一旦在当前行上运行了这两个命令,sed 就会移动到下一行,然后在这个新行上再次运行脚本。这个脚本会一直运行,直到没有更多的输入行。脚本的作用是继续打印,然后跳过行。

p;n;n

这大部分是相同的脚本,但它跳过了两行而不是一行。

p;p;n

这大部分是相同的脚本,但它在跳过它之前打印了两次该行。

why it isn't printing the first and second line, and hide the third one ?



因为 p不向前推进一行,仅 n (或到达脚本的末尾)就是这样做的。

(注意 sed -n 'p' 打印每一行而不跳过任何行, sed -n 'p;p;p' 每行打印三遍, sed -n 'p;n;p' 等价于 sed -n 'p' 可能会有所帮助。)

关于shell - 用 sed 显示一行两个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51614959/

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