+ -
当前位置:首页 → 问答吧 → 我想打印指定模式之前的第二行,可是这么做不管用,为什么呢?

我想打印指定模式之前的第二行,可是这么做不管用,为什么呢?

时间:2011-01-27

来源:互联网

$sed -n '{
:start
$q
N
4,$D
/line2/{
P
q
}
b start
}' test.txt #没有输出
$cat test.txt
ok
too many users
This is line 1.
line2

this is the end line.
$
我想让他输出too many users的,可是为什么输出不了呢?

作者: logic_pn   发布时间: 2011-01-27

回复 logic_pn


    $ echo "ok
too many users
This is line 1.
line2

this is the end line.
" |awk '{a[NR]=$0}a[NR]~/line2/{print a[NR-2]}'
too many users

作者: yinyuemi   发布时间: 2011-01-27

大哥,我不会用awk....你能不能指点一下我的sed命令错哪了?

作者: logic_pn   发布时间: 2011-01-27

没看懂楼主sed的逻辑。。。

作者: lkk2003rty   发布时间: 2011-01-27