linux的sed命令中的h

fiy 其他 5

回复

共3条回复 我来回复
  • 不及物动词的头像
    不及物动词
    这个人很懒,什么都没有留下~
    评论

    sed命令是Linux下文本处理工具,用于对文本进行替换、删除、插入等操作。其中,h命令是sed命令中的一个操作符。

    h命令用于将指定的行复制到一个称为“保留缓冲区”的特殊缓冲区中。另外,保留缓冲区的内容会被后续的命令所影响。在执行h命令之后,保留缓冲区的内容会被填写到模式空间中。

    h命令的语法如下:
    “`
    h
    “`

    下面是一个使用h命令的例子:
    假设我们有一个名为example.txt的文件,内容如下:
    “`
    Linux is awesome.
    I love Linux.
    “`
    我们可以使用h命令将第二行复制到保留缓冲区,并将保留缓冲区的内容替换为第一行。使用以下命令可以实现:
    “`
    sed ‘2h;2s/.*/Linux is powerful./’ example.txt
    “`
    执行以上命令后,文件的内容会变为:
    “`
    Linux is powerful.
    I love Linux.
    “`
    在这个例子中,我们先使用2h命令将第二行复制到保留缓冲区。然后使用2s命令将第二行的内容替换为”Linux is powerful.”。

    总的来说,h命令在sed命令中用于将指定行的内容复制到保留缓冲区,并可以在后续的操作中对保留缓冲区的内容进行处理。

    2年前 0条评论
  • fiy的头像
    fiy
    Worktile&PingCode市场小伙伴
    评论

    在Linux的sed命令中,h是一个用于复制匹配行的标签。

    1. h命令用法:`h`命令将模式空间中的当前行复制到持久化空间中,以备后续使用。
    “`
    sed ‘2h’ file.txt
    “`
    以上命令将file.txt文件的第二行复制到持久化空间。

    2. 在多行匹配中,h命令可以用于保存匹配的多个行。
    “`
    sed -n ‘/start/,/end/{/end/h;p}’ file.txt
    “`
    以上命令将file.txt文件中start和end之间的行保存到持久化空间。

    3. h命令与n命令联合使用可以实现行的交换。
    “`
    sed ‘3hn;2n’ file.txt
    “`
    以上命令将file.txt文件中的第三行和第二行互换位置。

    4. 使用h命令时,可以通过-n选项阻止默认的打印输出。
    “`
    sed -n ‘1h;1!H;$x;$!d’ file.txt
    “`
    以上命令将file.txt文件中的所有行保存到持久化空间,最后打印输出。

    5. h命令也可以与其他命令(如g命令)组合使用。
    “`
    sed ‘/pattern/h;/pattern2/g’ file.txt
    “`
    以上命令将匹配到的行保存到持久化空间,并将pattern2模式空间中的行替换为持久化空间中的内容。

    总结:在sed命令中,h命令用于将行保存到持久化空间,可以用于复制行、保存多行、行交换等操作。它与其他命令的组合使用可以实现更复杂的文本处理任务。

    2年前 0条评论
  • worktile的头像
    worktile
    Worktile官方账号
    评论

    在Linux中,sed命令是一种强大的文本处理工具,h是sed命令的一个选项,表示将模式空间中的内容复制到命令空间中的指定位置。

    使用h选项可以将模式空间(Pattern space)中的内容复制到一个称为“保持缓冲区”(hold buffer)的特殊区域中。保持缓冲区是一个临时的存储区域,可以将模式空间中的内容保存下来以备后续使用。

    下面是使用h选项的sed命令的一般格式:
    “`
    sed ‘h’
    “`

    使用h选项时,sed命令的工作流程如下:
    1. sed命令首先读取输入文件,并将每一行依次放入模式空间。
    2. 在处理每一行时,sed命令会将模式空间中的内容复制到保持缓冲区中。
    3. 复制完成后,sed命令可以继续进行其他操作,例如替换、删除、打印等。
    4. 当sed命令完成对当前行的所有操作后,它会将保持缓冲区中的内容复制回模式空间。这样,保持缓冲区中的内容就替换了模式空间中的原始内容。
    5. 接下来,sed命令会继续处理下一行,重复上述过程。

    当然,h选项还可以与其他选项一起使用,以满足更复杂的需求。例如,可以与替换操作的s选项一起使用,将模式空间中的指定内容复制到保持缓冲区中:
    “`
    sed ‘s/pattern/&/h’
    “`
    这将导致将匹配到的模式复制到保持缓冲区中。

    另外,还可以使用g选项和h选项结合使用,从而实现在模式空间和保持缓冲区之间进行来回切换的效果:
    “`
    sed ‘h; g’
    “`
    这将导致将模式空间中的内容复制到保持缓冲区中,然后再将保持缓冲区中的内容复制回模式空间。这样就实现了模式空间和保持缓冲区之间的内容互换。

    总结来说,h选项可以将模式空间中的内容复制到保持缓冲区中,从而实现对内容的备份或在不同操作之间进行内容传递。

    2年前 0条评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部