sed 示例进阶
- H x
H 把pattern空间追加到hold空间
x pattern空间和hold空间互换
示例
1 | root@jpvps /tmp/test #seq 1 | sed -n 'H;x;p' |
解读: -n 排除默认输出的干扰; p打印pattern
1 | input | pattern | hold | command | pattern | hold | command | pattern | hold |
- G
G 把hold空间追加到pattern空间
示例: 渲染问题,空行用文字代替
1 | root@jpvps /tmp/test #seq 1 | sed -n 'G;p' |
解读: -n 排除默认输出的干扰; p打印pattern
1 | input | pattern | hold | command | pattern | hold |
- 倒序输出
1
2
3
4
5
6
7root@jpvps /tmp/test #seq 6 | sed -n '1!G;h;$p'
6
5
4
3
2
1
解读: -n 排除默认输出的干扰; $p最后一行时打印pattern
1!G 除了第1行,把hold空间追加到pattern空间
h 把pattern空间拷贝到hold空间
1 | input | pattern | hold | command | pattern | hold | command | pattern | hold |