我可以在想要的字符串之前或之后grep一定数量的行吗?

时间:2018-07-30 18:57:09

标签: regex linux bash

比方说,我正在使用lshw获取系统内存,并且我希望将其打印出来,以便仅获取系统内存选项。您可以指定在grep中的字符串之前或之后要打印多少行吗?下面输出lshw命令的片段以供参考:

<table></table>
<br><br>
<div id="filters"></div>

我可以使用 description: Computer width: 64 bits *-core description: Motherboard physical id: 0 *-memory description: System memory physical id: 0 size: 23GiB *-cpu product: Intel(R) Core(TM) i5-8350U CPU @ 1.70GHz vendor: Intel Corp. physical id: 1 bus info: cpu@0 capacity: 1896MHz width: 64 bits 来获取23 GiB部分,但是我想看看是否有办法用grep获取一段文本来获取完整的内存部分。

1 个答案:

答案 0 :(得分:5)

@ L3viathan帮助我弄清楚了。 Grep具有-A标志,可让您指定在字符串后要多少行。您也可以使用-B标志来指定在字符串之前需要多少行。

示例后:

lshw | grep *-memory -A 3

输出:

     *-memory
      description: System memory
      physical id: 0
      size: 23GiB



示例之前

lshw | grep size -B 3

输出:

     *-memory
      description: System memory
      physical id: 0
      size: 23GiB