Lshw iki satır grep nasıl?


10

Bilgisayarın anakart seri numarasını ve ürün modelini karıştırmak istiyorum. kullandım

sudo lshw | grep -m1  serial:

seri numarasını grep için ("serial:" birden fazla kez ve istediğim birincisi olduğu için. Bunu nasıl yapabilirim VE eşzamanlı olarak "product:" için de grep? Ayrıca birden fazla ürün, ve ilki yine istediğim.

lshw bunu döndürür:

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

Yanıtlar:


16

Ya maç ilk iki sıra istiyorum product:ya serial:. Öyleyse deneyebilirsiniz:

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

Alternatif olarak, grephedef dizelerden herhangi biriyle eşleşen ve ardından headyalnızca ilk ikisini yazdırmak için kullanılan tüm satırlar :

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

Tabii ki, bu yaklaşımların her ikisi de birinciden product:önce bir saniyeniz olmayacağını serial:ve bunun tersini yapacağınızı varsayar .


15

Yalnızca sınıfı göstermek lshwiçin --classveya -canahtarıyla birlikte kullanın systemve yalnızca 1. olayı çıkarmak için endişelenmenize gerek yoktur:

lshw -c system | grep -E 'product:|serial:'

Kullanmak istemiyorsanız -c systemsize kullanabilirsiniz sedve q1. oluşumu üzerine uit serial:

lshw | sed '/serial/q;/product/!d'

Yalnızca kullanabileceğiniz değerlere ihtiyacınız varsa jq:

lshw -json -c system | jq '.product,.serial'

Bu komutları root olarak çalıştırdığınızı varsayarsak.


Güzel! Meraktan, kullanmayı nasıl bildin system? Bahsettiğini görmüyorum man lshw. -c systemAnakart ayrıntılarını her zaman göstereceğinden ve başka bir şey göstermeyeceğinden emin olabilir miyiz ?
terdon

1
@terdon - kılavuzda: Çalıştırırsanız lshw -short(donanım sınıflarını görmek için) çıktı kendinden açıklayıcıdır
don_crissti

1
Ah, öyle, teşekkürler. Görünüşe göre, sadece -ckılavuzdaki bölümün ilk cümlesini okudum ve tam olarak açıklayan ikincisini kaçırdım. İç çek .
terdon

3

grepVe -classseçeneğini kullanarak :

sudo lshw -class system | grep 'product\|serial'
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.