如何过滤 grep 结果?

如何过滤 grep 结果?

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

当我跑步时:

sudo lshw -short

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

当我跑步时:

sudo lshw -short | grep processor

它返回(点代表空格)

/0/4                        ...........................................processor................................................   AMD FX(tm)-6100 Six-Core Processor"

我的问题是如何删除“processor”前面的所有内容。或者如何仅显示“processor”后面的内容。我尝试了 grep 的其他几个选项,并尝试找到一个可以工作的 awk 命令,但都失败了。

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

答案1

grep在支持 PCRE(Perl 兼容正则表达式)扩展的版本中,您可以执行

sudo lshw -short | grep -Po 'processor\K.*'

表示-o仅打印匹配的文本,而\K修饰符会导致匹配文本左侧的任何内容被排除在结果之外。

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

sudo lshw -short | grep -Po 'processor\s*\K.*'

相关内容