lshwで2行をgrepする方法は?

lshwで2行をgrepする方法は?

私のコンピュータのマザーボードのシリアル番号とモデル番号を知りたいです。使った

sudo lshw | grep -m1  serial:

シリアル番号の grep("serial:" が複数回表示され、最初の番号が必要なためです。 同時に "product:" の grep と同時にこれを実行できますか? product も複数回表示されます。何ですか?)私は欲しい。

lshw次を返します。

user@ubuntu:~$ sudo lshw
ubuntu-pc              
    description: Notebook
    product: 23252DG (LENOVO_MT_2325)
    vendor: LENOVO
    version: ThinkPad X230
    serial: R9TWZVR
    width: 64 bits
    capabilities: smbios-2.7 dmi-2.7 vsyscall32
    configuration: administrator_password=disabled chassis=notebook family=ThinkPad X230 power-on_password=disabled sku=LENOVO_MT_2325 uuid=01ECC0B1-8251-CB11-8538-B7D9EC435D9B
  *-core
       description: Motherboard
       product: 23252DG
       vendor: LENOVO
       physical id: 0
       version: Not Defined
       serial: 1ZPAB2AC2C1
       slot: Not Available
     *-cpu
          description: CPU
          product: Intel(R) Core(TM) i7-3520M CPU @ 2.90GHz
          vendor: Intel Corp.
          physical id: 1
          bus info: cpu@0
          version: Intel(R) Core(TM) i7-3520M CPU @ 2.90GHz
          serial: None

ベストアンサー1

product:最初の2行が一致するようにしたいか、または希望していますserial:。その場合は、次のことを試すことができます。

$ sudo lshw | grep -Em2 'serial:|product:'
    product: 20FWCTO1WW (LENOVO_MT_20FW_BU_Think_FM_ThinkPad T460p)
    serial: PF0P1EUH

または、grepターゲット文字列に一致するすべての行を選択し、最初のhead2つだけを印刷します。

$ sudo lshw | grep -E 'serial:|product:' | head -n2
    product: 20FWCTO1WW (LENOVO_MT_20FW_BU_Think_FM_ThinkPad T460p)
    serial: PF0P1EUH

もちろん、どちらのアプローチもproduct:最初の前に2番目のものを持つことはできず、serial:その逆も同様です。

おすすめ記事