我正在尝试匹配来自管道输入和/或文件的模式,然后从匹配的行中删除到文件的末尾,包括在内。我到处寻找,但似乎找不到适合我需要的表达方式。
以下表达式允许我删除到流的开头,包括匹配的模式:
sed -e '1,/Files:/d'
给定一些样本数据:
Blah blah blah
Foobar foo foo
Files:
somefiles.tar.gz 1 2 3
somefiles.tar.gz 1 2 3
-----THIS STUFF IS USELESS-----
BLEH BLEH BLEH
BLEH BLEH BLEH
运行上面的表达式会产生:
Files:
somefiles.tar.gz 1 2 3
somefiles.tar.gz 1 2 3
-----THIS STUFF IS USELESS-----
BLEH BLEH BLEH
BLEH BLEH BLEH
我想达到类似的效果,但方向相反。使用上一个表达式的输出,我想从-----THIS STUFF IS USELESS-----
文件的末尾删除,包括在内。它应该产生(经过第一个表达式之后):
Files:
somefiles.tar.gz 1 2 3
somefiles.tar.gz 1 2 3
我也愿意使用任何其他工具,只要它在任何其他 POSIX 系统上可用并且不使用特定于版本(例如特定于 GNU)的选项。
实际文本可以在这里找到:http: //pastebin.com/CYBbJ3qr
注意从-----THIS STUFF IS USELESS-----
到的变化-----BEGIN PGP SIGNATURE-----
。