操纵sed上下文

时间:2012-02-29 23:45:52

标签: sed

这是我的单行:

sed -n '/BEGIN/,/END/{$d;1d;p}' query

并查询:

trash

BEGIN first
labas
END

nieko nėra

BEGIN second
iki
END
nesimato

我期待这个结果:

labas
iki

然而,我明白了:

BEGIN first
labas
END
BEGIN second
iki
END

我对sed上下文有什么误解?不应该{$d,1d;p}删除匹配输入的第一行和最后一行吗?

2 个答案:

答案 0 :(得分:1)

不,它会删除作为文件第一行或最后一行的匹配输入的任何行。如果删除query的前两行(以便第一行是“BEGIN”),则可以看到效果。

答案 1 :(得分:1)

这可能对您有用:

sed -n '/BEGIN/,/END/{//!p}' file
labas
iki