加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

正则表达式 – 使用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
注意从—–这个STUFF无效的更改—–到—–开始PGP签名—–.

为什么不
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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读