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

bash – 正则表达式为sed抓住多条线路或更好的方式?

发布时间:2020-12-15 18:34:21 所属栏目:安全 来源:网络整理
导读:我正在创建一个连接到服务器的脚本,并将输出转储到临时文件.我想在脚本中使用sed从临时文件中获取特定信息.输出将始终具有80个字符的虚线,然后是我想要的信息,然后是Disconnected语句. 我有一个正则表达式工作,如果它只是一行,问题是我如何组合换行符? 正则
我正在创建一个连接到服务器的脚本,并将输出转储到临时文件.我想在脚本中使用sed从临时文件中获取特定信息.输出将始终具有80个字符的虚线,然后是我想要的信息,然后是Disconnected语句.

我有一个正则表达式工作,如果它只是一行,问题是我如何组合换行符?

正则表达式

-{80}[rn]*(.*)[rn]{4}Disconnected

文件

...
--------------------------------------------------------------------------------
The information that I want to get can be a single line or multiple lines.
Another line to grab.

And this should be caught as well.

Disconnected ...

期望的输出

The information that I want to get can be a single line or multiple lines.
Another line to grab.

And this should be caught as well.
首先使用’-n’标志来抑制自动输出.接下来使用sed地址引用您感兴趣的部分(从破折号“—”到具有“Disconnected”一词的行).最后打印模式空间(所有模式空间,因为你对它里面的所有内容感兴趣).
~$sed -n '/^---*/,/Disconnected/{p}' inputfile

由于LF4请求从结果中删除带有破折号的行而编辑.

使用“地址”,您可以引用单个模式空间.因此,您可以使用这些单独的模式空间执行任何操作.包括regexp删除行.在该示例中,该命令从模式空间中删除由破折号形成的线,从而产生您正在寻找的输出:

~$sed -n '/^---*/,/Disconnected/{/^---*/d;p}' inputfile

HTH

(编辑:李大同)

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

    推荐文章
      热点阅读