lscpu 출력을 JSON 형식으로 변환하는 방법은 무엇입니까?

lscpu 출력을 JSON 형식으로 변환하는 방법은 무엇입니까?

lscpu데이터를 JSON 형식으로 출력 해야 하는데 -J키가 지원하지 않는 상황을 처리해야 했습니다 .

그래서 일반 출력을 JSON으로 변환할 수 있는 간단한 명령줄 스크립트를 만들었고 여기에 답변으로 게시하겠습니다.

답변1

echo {$(lscpu | sed 's/  */ /g' | sed 's/: /:/g' | awk -F ':' '{print "\x22"$1"\x22: \x22"$2"\x22,"}') | sed 's/,$/}/'

두 번째는 sed추가 공백을 제거하고 awk필드 주위에 큰따옴표를 만든 다음 sed마지막 쉼표를 첫 번째 중괄호로 생성된 배열을 묶는 중괄호로 바꿉니다.

콘솔 로그:

lscpu

Architecture:                    aarch64
CPU op-mode(s):                  32-bit, 64-bit
Byte Order:                      Little Endian
CPU(s):                          4
On-line CPU(s) list:             0-3
Thread(s) per core:              1
Core(s) per socket:              4
Socket(s):                       1
Vendor ID:                       ARM
Model:                           3
Model name:                      Cortex-A72
Stepping:                        r0p3
CPU max MHz:                     1800.0000
CPU min MHz:                     600.0000
BogoMIPS:                        108.00
Vulnerability Itlb multihit:     Not affected
Vulnerability L1tf:              Not affected
Vulnerability Mds:               Not affected
Vulnerability Meltdown:          Not affected
Vulnerability Mmio stale data:   Not affected
Vulnerability Spec store bypass: Vulnerable
Vulnerability Spectre v1:        Mitigation; __user pointer sanitization
Vulnerability Spectre v2:        Vulnerable
Vulnerability Srbds:             Not affected
Vulnerability Tsx async abort:   Not affected
Flags:                           fp asimd evtstrm crc32 cpuid

-----------------------------------------------------------

echo {$(lscpu | sed s/ automation/ snap/ /g | sed s/: /:/g | awk -F : {print "": "",}) | sed s/,$/}/

{
  "Architecture": "aarch64",
  "CPU op-mode(s)": "32-bit, 64-bit",
  "Byte Order": "Little Endian",
  "CPU(s)": "4",
  "On-line CPU(s) list": "0-3",
  "Thread(s) per core": "1",
  "Core(s) per socket": "4",
  "Socket(s)": "1",
  "Vendor ID": "ARM",
  "Model": "3",
  "Model name": "Cortex-A72",
  "Stepping": "r0p3",
  "CPU max MHz": "1800.0000",
  "CPU min MHz": "600.0000",
  "BogoMIPS": "108.00",
  "Vulnerability Itlb multihit": "Not affected",
  "Vulnerability L1tf": "Not affected",
  "Vulnerability Mds": "Not affected",
  "Vulnerability Meltdown": "Not affected",
  "Vulnerability Mmio stale data": "Not affected",
  "Vulnerability Spec store bypass": "Vulnerable",
  "Vulnerability Spectre v1": "Mitigation; __user pointer sanitization",
  "Vulnerability Spectre v2": "Vulnerable",
  "Vulnerability Srbds": "Not affected",
  "Vulnerability Tsx async abort": "Not affected",
  "Flags": "fp asimd evtstrm crc32 cpuid"
}

관련 정보