作业帮 > 综合 > 作业

谁能帮我注释一下这句 sed -n 'h;$!{n;G};p' 111.txt 主要是这段'h;$!{n;G};p'

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/05/15 20:40:30
谁能帮我注释一下这句 sed -n 'h;$!{n;G};p' 111.txt 主要是这段'h;$!{n;G};p'
h:把模式空间里的一句拷到缓冲区
$! {n;G}:除了最后一句,格一行,把缓冲区里的内容插入当前行之后一行
p:打印当前模式空间
再问: 看不懂哦,这个可以有示例嘛
再答: 那还是看看sed的教程把。。。 1.用分号分开的是顺序执行的命令,用{}括起来的是 子命令,所以整个可以分3块。 2.第一快h,就是把当前这一行(模式空间里的这一行),复制到内存里一个叫缓冲区的地方(看不见)。 3.第二快$! {n;G}:前面的$表示最后一行,!表示不包括前面的行号的其他行,合起来$!表示除最后一行之外都执行{}里面的。而{}里面的n表示下一行(不对当前行操作,模式空间清空读入下一行)顺序执行下面的G,表示在当前模式空间(第二行)后面插入存在缓冲区里的一行,这时模式空间里面有两行。 4.第三块p:打印模式空间里面的内容。 继续下一行执行上面循环