lshw에서 두 줄을 잡는 방법?


10

마더 보드 일련 번호와 컴퓨터 제품 모델을 확인하고 싶습니다. 나는 사용했다

sudo lshw | grep -m1  serial:

일련 번호를 grep하려면 ( "serial :"이 여러 번 발생하기 때문에 원하는 것이 첫 번째이기 때문에이 작업을 수행하고 "product :"에 대해 동시에 grep을 수행하려면 어떻게해야합니까? 첫 번째는 다시 내가 원하는 것입니다.

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

답변:


16

당신이 중 하나와 일치하는 처음 두 줄 원하는 product:또는 serial:. 그렇다면 다음을 시도해보십시오.

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

또는 grep대상 문자열 중 하나와 일치하는 모든 행을 사용 head하여 첫 번째 두 행만 인쇄합니다.

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

물론,이 두 가지 접근 방식 모두 product:첫 번째 보다 두 번째는 없으며 serial:, 그 반대도 없다고 가정합니다 .


15

클래스 만 표시하기 lshw위해 --class또는 -c스위치 와 함께 사용 system하면 첫 번째 항목 만 추출하는 것에 대해 걱정할 필요가 없습니다.

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

사용하지 않으려면 및 첫 번째 발생시 및를 -c system사용할 수 있습니다 .sedqserial

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

필요한 값만 필요한 경우 다음을 사용할 수 있습니다 jq.

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

해당 명령을 루트로 실행한다고 가정하십시오.


좋은! 호기심에서, 당신은 어떻게 사용하는지 알고 system있습니까? 에 언급되지 않았습니다 man lshw. 우리 -c system는 항상 마더 보드 세부 정보를 보여줄 것이라고 확신 할 수 있습니까 ?
terdon

1
@terdon -이 설명서에 : 당신이 실행하는 경우 lshw -short(하드웨어 클래스를 참조하는) 출력이 자명하다
don_crissti

1
아, 감사합니다. 분명히, 나는 -c매뉴얼 의 섹션 의 첫 번째 문장 만 읽었으며 두 번째 부분은 놓쳤다. 한숨 .
terdon

3

사용 grep-class옵션 :

sudo lshw -class system | grep 'product\|serial'
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.