gpt4 book ai didi

bash - 两个模式之间的sed提取

转载 作者:行者123 更新时间:2023-11-29 09:46:28 25 4
gpt4 key购买 nike

我需要从下面的报告中提取“Timing exception”和“--------”之间的行,然后将它们输出到文件

Timing exceptions with no effect exception's 
report timing -paths [eval [::legacy::get_attribute paths <exception>]]
/designs/exceptions/path_groups/
-----------------------------------

Summary
Loop-breaking cells for combinational feedback 0
Nets with multiple drivers 0
Timing exceptions with no effect 5
Suspicious multi_cycle exceptions 0
Outputs without clocked external delays 0

Total: 5

我试过了sed -n '/Timing exceptions/,/-----/p' filename,但总是返回

Timing exceptions with no effect exception's 
report timing -paths [eval [::legacy::get_attribute paths <exception>]]
/designs/exceptions/path_groups/
-----------------------------------
Timing exceptions with no effect 5
Suspicious multi_cycle exceptions 0
Outputs without clocked external delays 0

Total: 5

我只想要上面的 4 行,但我不知道如何去掉下面的行。谁能帮帮我?非常感谢!

最佳答案

Timing exceptions之前添加^以指示行的开始:

sed -n '/^Timing exceptions/,/-----/p' file.txt 

你在两行中有Timing exceptions,一行在第一行,另一行在 ---- 行之后,所以你得到两个 block ,一个在第一行一个到 ---- 行,另一个从第二个 Timing exceptions 到结束,因为没有 ---- 行之后。

我们在 Timing exceptions 之前使用了 ^ 这样我们只能匹配第一个 block 因为在第二个 block 中 Timing exceptions 不会出现在行的开头。

示例:

% sed -n '/^Timing exceptions/,/-----/p' file.txt 
Timing exceptions with no effect exception's
report timing -paths [eval [::legacy::get_attribute paths <exception>]]
/designs/exceptions/path_groups/
-----------------------------------

关于bash - 两个模式之间的sed提取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39713660/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com