我正在尝试匹配管道输入和/或文件中的模式,然后从匹配的行中删除文件的末尾(包括).我看到无处不在,但似乎找不到符合我需求的表达.
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
我想实现类似的效果,但是反方向.使用前一个表达式的输出,我想从—–这个STUFF是无用的—–到文件的末尾(包括)删除.它应该产生(经过第一个表达):
Files: somefiles.tar.gz 1 2 3 somefiles.tar.gz 1 2 3
我也可以使用任何其他工具,只要它在任何其他POSIX系统上可用,并且不使用特定于版本的(例如GNU特定)选项.
实际文字可以在这里找到:http://pastebin.com/CYBbJ3qr
注意从—–这个STUFF无效的更改—–到—–开始PGP签名—–.
为什么不
原文链接:https://www.f2er.com/regex/356647.htmlsed '/^-----THIS STUFF IS USELESS-----$/,$d' file
在像你使用的范围表达式中,’,$’将指定“到文件的末尾”
1 is first line in file,$is last line in file.
产量
Files: somefiles.tar.gz 1 2 3 somefiles.tar.gz 1 2 3
IHTH