微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

正则表达式 – 在与sed匹配之前删除所有行

我使用sed来过滤文件列表.我有一个排序的文件夹列表,我想得到所有的行后一个特定的.为了做这个任务,我使用了描述 here解决方案,它与我尝试过的任何输入工作相当不错,但是当匹配在第一行时它不起作用.在这种情况下,sed将会删除输入的所有行

这是一个例子:

(ssh) fabio@s2 : ~
[0] % ls -1 /
bin
boot
...
sys
tmp
usr
var
vmlinuz

(ssh) fabio@s2 : ~
[0] % ls -1 / | sed '1,/tmp/d'
usr
var
vmlinuz

(ssh) fabio@s2 : ~
[0] % ls -1 / | sed '1,/^bin$/d'
# sed will delete all lines from the input stream

如何更改命令以考虑第一行与regexp匹配的极限情况?

BTW sed’1,1d’正确地工作并删除第一行.

尝试这个(仅限GNU sed):
sed '0,/^bin$/d'

..输出是:

$sed '0,/^bin$/d' file
boot
...
sys
tmp
usr
var
vmlinuz

原文地址:https://www.jb51.cc/regex/357098.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐