似乎每个核心 Linux 命令都有不同的标准输出格式。此外,其他脚本/应用程序并不总是容易/安全/一致地解析这些格式。
是否有包装器或规范或库提供统一/一致的输出以便于解析(如 JSON 或 UniqueName:Value 编码)?
示例 1:ps -A
PID TTY TIME CMD
558 tty1 00:00:00 startx
576 tty1 00:00:00 xinit
577 tty1 00:00:37 Xorg
590 tty1 00:00:01 awesome
8281 pts/0 00:00:00 ps
示例 2:lshw / lscpu
虽然lshw
是键:值输出,但很难解析成唯一的键:值对。
cedar
description: Computer
width: 64 bits
capabilities: smp vsyscall32
*-core
description: Motherboard
physical id: 0
*-memory
description: System memory
physical id: 0
size: 7936MiB
*-cpu
product: Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz
vendor: Intel Corp.
physical id: 1
bus info: cpu@0
size: 2611MHz
capacity: 3GHz
<SNIP>
示例 3:ls -l
total 36
drwxr-xr-x 2 guy guy 4096 Nov 19 08:41 Desktop
drwxr-xr-x 2 guy guy 4096 Dec 26 13:37 Downloads
drwxr-xr-x 3 guy guy 4096 Nov 7 19:39 go
drwxr-xr-x 6 guy guy 4096 Jan 15 12:42 play
drwxr-xr-x 12 guy guy 4096 Jan 16 19:27 repo
drwxr-xr-x 3 guy guy 4096 Oct 15 18:39 RiderProjects
drwxr-xr-x 8 guy guy 4096 Jan 13 17:38 scripts
drwxr-xr-x 12 guy guy 4096 Jan 10 16:48 source
drwxr-xr-x 6 guy guy 4096 Jan 4 14:31 temp
例 4。file /bin/bash
/bin/bash: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=6c75f9f0f273cf6549f078b042c0a3f5a04f0357, for GNU/Linux 4.4.0, stripped
替代方案:通用外壳对象模型
PowerShell Core等一些 shell具有通用的内部对象模型,用于在函数之间进行一致的数据配对。有类似 linux core utils 的东西吗?
相关问题
有用的评论
lshw
,lscpu
,ps
不是 GNU coreutils Stéphane Chazelas 的一部分- coreutils 不是单数:GNU、toybox(Android)或busybox(大多数其他)