正则表达式 – 使用sed匹配模式并从文件行的尾部删除
发布时间:2020-12-13 22:55:14 所属栏目:百科 来源:网络整理
导读:我正在尝试匹配管道输入和/或文件中的模式,然后从匹配的行中删除文件的末尾(包括).我看到无处不在,但似乎找不到符合我需求的表达. 以下表达式允许我删除到流的开头,包括匹配的模式: sed -e '1,/Files:/d' 给出一些样本数据: Blah blah blahFoobar foo fooF
我正在尝试匹配管道输入和/或文件中的模式,然后从匹配的行中删除文件的末尾(包括).我看到无处不在,但似乎找不到符合我需求的表达.
以下表达式允许我删除到流的开头,包括匹配的模式: 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
为什么不
sed '/^-----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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |