sed中〜的解释


9

我现在正在学习sed。这个波浪号“〜”让我感到困惑。

例如,命令

sed -n '1~2 w output.txt' input.txt

正在打印奇数行(到文件output.txt)。

在同一教程中,还给出了跳过从1到2的行,然后开始打印第2行旁边的行的情况,以防我们使用

sed -n '1~2 p' input.txt

这个波浪号的绝对解释是什么?


对于第二个示例,本教程确切地说了什么?“从1跳到2跳行”不是该命令的准确描述。
JigglyNaga

Answers:


13

这是一个GNU sed扩展:

first~step

step从line开始匹配每一行first。例如,sed -n 1~2p将打印输入流中的所有奇数行,并且地址2~5将与第二行开始的每第五行匹配。 first可以为零;在这种情况下, sed将等于进行操作step。(这是一个扩展。)

您的两个示例匹配相同的行,但是第一个示例将(w)写到()文件中,第二个示例将()打印p到标准输出要去的任何地方。

通常,请始终参考该命令的手册。该手册很少含糊。通过组合命令功能的多个方面来应用命令有时可能很难在教程中进行解释(有时,教程试图通过以多种方式对同一条语句进行措辞来使事情更易于理解,但这可能会引起混乱),但是该手册是汇总命令功能每一方面的明确参考。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.