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"
}