刚开始使用Bash脚本,偶然发现jq可以处理JSON。我尝试了通过jq进行多项操作,但无法获得正确的格式,因为数据更改了输出可读性
我现在有这个,但是随着数据的变化,表格变得一团糟,
echo "$(jq -r '[(.Results[].Vulnerabilities[] | {VulnerabilityID,PkgName,Severity,InstalledVersion,FixedVersion})] | ["VulnerabilityID","PkgName"," Severity","InstalledVersion","FixedVersion"], ["---------------","-------", " -------", "----------------", "------------"], (.[] | [.VulnerabilityID, .PkgName, .Severity, .InstalledVersion, .FixedVersion]) | @tsv' json.json)" >> output.txt
我需要将下面的JSON字符串转换为一个表,以便在终端中输出。https://dpaste.org/iKG9n
我想在终端中显示:
VulnerabilityID PkgName Severity InstalledVersion FixedVersion
--------------- ------- ------- ---------------- ------------
CVE-2021-33910 libsystemd0 HIGH 237-3ubuntu10.43 237-3ubuntu10.49
CVE-2021-33910 libudev1 HIGH 237-3ubuntu10.43 237-3ubuntu10.49
1条答案
按热度按时间brgchamk1#
你当然可以使用
jq
来检查列中的所有值,然后用空格(或破折号)填充每个项目,使它们具有相等的宽度,但已经有外部工具可以做到这一点。其中一个是util-linux中的column
。像这样使用它: