地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

コマンド結果をjsonへ

import os
import sys
import json
import subprocess

print(json.dumps(dict([(c, subprocess.getoutput(c).split('\n')) for c in sys.argv[1:]])))

コマンド結果をひたすらjsonへするコマンド。ワンライナーでできなかったので仕方なくpythonで実装。

$ python3 a.py ls uname df | jq .
{
  "ls": [
    "LICENSE",
    "Makefile",
    "README.md",
    "a.py",
    "linux",
    "mac",
    "windows"
  ],
  "uname": [
    "Darwin"
  ],
  "df": [
    "Filesystem    512-blocks      Used Available Capacity iused               ifree %iused  Mounted on",
    "/dev/disk1s1   489620264 319987840 164077960    67% 2256501 9223372036852519306    0%   /",
    "devfs                666       666         0   100%    1152                   0  100%   /dev",
    "/dev/disk1s4   489620264   4194392 164077960     3%       2 9223372036854775805    0%   /private/var/vm",
    "map -hosts             0         0         0   100%       0                   0  100%   /net",
    "map auto_home          0         0         0   100%       0                   0  100%   /home"
  ]
}

ワンライナーでやりたかったけどjq力が足りずに失敗。。。