linux的sed命令中的h
-
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年前 -
在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年前 -
在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年前