Estou mais interessado nos arquivos que fornecem informações do sistema, como /proc/mdstat
, /proc/crypto
e /proc/cpuinfo
. /proc/mdstat
demonstra isso de forma mais concisa:
-
cat /proc/mdstat
-
Personalities : unused devices: <none>
Isso é interessante, porque você pensaria que, para fins de análise, você pode sempre usar caracteres maiúsculos consistentes para os nomes das chaves e aspas para quando houver espaços (como JSON5) ou pelo menos uma aplicação consistente de valores lógicos (como
<none>
quando não há dados.Isto é desconcertante. Não consigo imaginar a que realmente adere.
O resto parece ser um equivalente delimitado por espaço para .TSV
s:
major minor #blocks name
259 0 1953514584 nvme3n1
259 2 1953510400 nvme3n1p1
259 1 1953514584 nvme1n1
259 3 614400 nvme1n1p1
259 4 1048576 nvme1n1p2
259 5 1951850496 nvme1n1p3
259 6 250059096 nvme0n1
259 7 244198584 nvme2n1
259 8 16384 nvme2n1p1
259 9 243446784 nvme2n1p2
259 10 733184 nvme2n1p3
252 0 8388608 zram0
7 0 4 loop0
7 1 106488 loop1
7 2 106692 loop2
7 3 65480 loop3
7 4 65480 loop4
7 5 75996 loop5
7 6 76020 loop6
7 7 71928 loop7
7 9 71840 loop9
7 8 93888 loop8
7 10 39664 loop10
7 11 39760 loop11
7 12 2120 loop12
...então eles não são de interesse.
Nenhum. Todos eles são feitos à mão por meio de uma série de chamadas seq_printf(), com a vaga intenção de serem "legíveis por máquina" por alguém que utiliza o C sscanf() (o que torna um tanto conveniente analisar uma mistura de larguras delimitadas e fixas campos) e/ou regexes.
Alguns deles não foram feitos para serem legíveis por máquina, por exemplo, o arquivo "mdstat", e/ou são interfaces legadas substituídas por um sistema mais estruturado, por exemplo, as tabelas de roteamento em /proc/self/net são muito antigas interface que há muito foi substituída pelo Netlink.