【发布时间】:2016-12-02 19:52:14
【问题描述】:
我有一个问题:我希望能够删除文件中两个模式之间的行。
例如可以删除等于“line 1”beetwin“blablabla++”和“blablabla--”的行
line1
blablabla++
line1
line2
line3
blablabla--
line1
我找到了一种使用 sed 的方法:
sed '/blablabla++/,/blablabla--/{/line1/d}' ./file
效果很好。但问题是,在我的真实文件中更像是:
line1/script
blablabla++
line1/script
line2/script
line3/script
blablabla--
line1/script
我怎么能这样做?
编辑
我选择了一个不好的例子。
问题是我不知道我需要删除的行是什么(该行将作为参数发送)。但我肯定知道一件事是它们将包含“/”字符。
问题是当我这样做时:
sed '/blablabla++/,/blablabla--/{/$1/d}' ./file
$1 包含的“/”会弄乱我的 sed。
【问题讨论】:
-
成功了,第二个
line1/script被删除了