多线修剪

时间:2010-04-11 20:33:03

标签: linux unix sed awk

我有一个我要修剪的html文件。我想从开头一直删除一个给定字符串,从另一个字符串到结尾。我该怎么做,最好使用sed?

2 个答案:

答案 0 :(得分:6)

使用GNU sed

sed '/mark1/,/mark2/d;/mark3/,$d'

abc
def
mark1
ghi
jkl
mno
mark2
pqr
stu
mark3
vwx
yz

变为

abc
def
pqr
stu

答案 1 :(得分:0)

你可以使用awk

$ cat file
mark1 dsf
abc
def
before  mark2 after
blah mark1
ghi
jkl
mno
wirds mark2 here
pqr
stu
mark3
vwx
yz

$ awk -vRS="mark2" '/mark1/{gsub("mark1.*","")}/mark3/{ gsub("mark3.*","");print;f=1 } !f ' file

 after
blah
 here
pqr
stu