업데이트:

jq 명령어를 통한 Json to CSV 변환

Jq 명령어

Json 배열에서 CSV 데이터 변환

[
  {
    "fs": "/dev/mapper/vgubuntu-root",
    "type": "ext4",
    "size": "915G",
    "used": "135G",
    "avail": "734G",
    "usedpercentage": "16%",
    "mounted": "/"
  },
  {
    "fs": "/dev/nvme0n1p2",
    "type": "ext4",
    "size": "1.4G",
    "used": "378M",
    "avail": "939M",
    "usedpercentage": "29%",
    "mounted": "/boot"
  },
  {
    "fs": "/dev/nvme0n1p1",
    "type": "vfat",
    "size": "511M",
    "used": "30M",
    "avail": "482M",
    "usedpercentage": "6%",
    "mounted": "/boot/efi"
  }
]

Header 추출

첫번째 구조에서 keys 정보만 추출 (csv)

$ cat data.json | jq -r '.[0] | keys_unsorted | @csv'
"fs","type","size","used","avail","usedpercentage","mounted"

Data 추출

$ cat data.json | jq -r '.[] | [.[]] | @csv'
"/dev/mapper/vgubuntu-root","ext4","915G","135G","734G","16%","/"
"/dev/nvme0n1p2","ext4","1.4G","378M","939M","29%","/boot"
"/dev/nvme0n1p1","vfat","511M","30M","482M","6%","/boot/efi"

NDJson 형식에서 CSV 데이터 변환

{ "fs": "/dev/mapper/vgubuntu-root", "type": "ext4", "size": "915G", "used": "135G", "avail": "734G", "usedpercentage": "16%", "mounted": "/" }
{ "fs": "/dev/nvme0n1p2", "type": "ext4", "size": "1.4G", "used": "378M", "avail": "939M", "usedpercentage": "29%", "mounted": "/boot" }
{ "fs": "/dev/nvme0n1p1", "type": "vfat", "size": "511M", "used": "30M", "avail": "482M", "usedpercentage": "6%", "mounted": "/boot/efi" }

Header 추출

첫번째 라인의 json 에서 keys 정보만 추출 (csv)

$ cat nd.json | head -n1 | jq -r 'keys_unsorted | @csv'
"fs","type","size","used","avail","usedpercentage","mounted"

Data 추출

$ cat nd.json | jq -r '[.[]] | @csv'
"/dev/mapper/vgubuntu-root","ext4","915G","135G","734G","16%","/"
"/dev/nvme0n1p2","ext4","1.4G","378M","939M","29%","/boot"
"/dev/nvme0n1p1","vfat","511M","30M","482M","6%","/boot/efi"

댓글남기기