+ -
当前位置:首页 → 问答吧 → 一个sed的问题???

一个sed的问题???

时间:2011-04-01

来源:互联网

sed -n '/regular/!({g;1!p};h)'
意思是显示上一行,看半天不懂怎么实现的,哪位帮忙解释一下具体参数的意思?

作者: somingxu   发布时间: 2011-04-01

高级sed 命令   g,h  模式空间和保持空间中的数据 交换

作者: chenbin200818   发布时间: 2011-04-01

显示匹配行的上一行?你那命令不对吧
[root@rhel6 script]# seq 5|sed -n '/4/{g;1!p};h'
3

这是sed内部处理的过程
[root@rhel6 script]# seq 5|sedsed -d -n '/4/{g;1!p};h'
PATT:1$
HOLD:$
COMM:/4/ {
COMM:h
PATT:1$
HOLD:1$
PATT:2$
HOLD:1$
COMM:/4/ {
COMM:h
PATT:2$
HOLD:2$
PATT:3$
HOLD:2$
COMM:/4/ {
COMM:h
PATT:3$
HOLD:3$
PATT:4$
HOLD:3$
COMM:/4/ {
COMM:g
PATT:3$
HOLD:3$
COMM:1 !p
3
PATT:3$
HOLD:3$
COMM:}
COMM:h
PATT:3$
HOLD:3$
PATT:5$
HOLD:3$
COMM:/4/ {
COMM:h
PATT:5$
HOLD:5$

作者: bizchen   发布时间: 2011-04-01

回复 bizchen


    谢谢!原来如此,你这这个显示SED过程的是啥工具呀?

作者: somingxu   发布时间: 2011-04-01

sedsed

作者: bizchen   发布时间: 2011-04-01