如何过滤grep结果?

eme*_*oke 2 bash grep awk

我是编写脚本的新手。所以我希望这很简单。我正在编写的脚本用于收集系统信息并将其保存为 html 文件。

当我运行时:

sudo lshw -short
Run Code Online (Sandbox Code Playgroud)

它列出了系统上的所有硬件。

当我运行时:

sudo lshw -short | grep processor
Run Code Online (Sandbox Code Playgroud)

它返回(点代表空格)

/0/4                        ...........................................processor................................................   AMD FX(tm)-6100 Six-Core Processor"
Run Code Online (Sandbox Code Playgroud)

我的问题是如何删除处理器前面的所有内容。或者我如何只显示“处理器”之后的内容。我尝试了 grep 的其他几个选项,并试图找到一个 awk 命令来工作,但我的尝试失败了。

如果需要更多信息,请告诉我。

ste*_*ver 5

grep支持 PCRE(Perl Compatible Regular Expression)扩展的版本中,你可以做

sudo lshw -short | grep -Po 'processor\K.*'
Run Code Online (Sandbox Code Playgroud)

-o说只打印匹配的文本,并\K修改引起什么它留在匹配的文本从结果中排除。

如果您还想删除文字文本后面的任何空格processor,您可以这样做

sudo lshw -short | grep -Po 'processor\s*\K.*'
Run Code Online (Sandbox Code Playgroud)