使用 tr 或 cut skews 列格式

Using tr or cut skews column formatting

我正在使用一个脚本,该脚本使用 curl 从配置中获取特定的数组值。 Tom Fenech 帮助进行了列格式设置。我 运行 遇到了另一个问题,即列格式被 tr 和 cut 命令扭曲了。一个数组集的命令输出包含围绕对象键的方括号。我正在使用 tr 或 cut 删除周围的括号,它们完成了工作,但是列格式是倾斜的。这是我的代码:

# get the device groups
d_groups=`curl -H "X-Person-Token: $auth_token" -H "X-Person-Email: $auth_email" -k "$api_host/api/v1/device_groups"`
    grp_uuid=`echo $d_groups | jq '.[] | .uuid'`
    grp_name=`echo $d_groups | jq '.[] | .name'`
    grp_desc=`echo $d_groups | jq '.[] | .description'`
    grp_dev=`echo $d_groups | jq '.[] | .devices'`
        echo "========== DEVICES =========="
        paste <(printf 'DEVICE_GROUP_NAME\n%s\n' "$grp_name") <(printf 'DESCRIPTION\n%s\n' "$grp_desc") <(printf 'DEVICE_GROUP_UUID\n%s\n' "$grp_uuid") <(printf 'DEVICES\n%s\n' "$grp_dev" | cut -c2-39) | column -t
        echo ""
exit 0

我也试过使用 'tr -d "[]"' 与使用 cut 的结果相同。以下是上述脚本的结果:

========== DEVICES ==========
DEVICE_GROUP_NAME                       DESCRIPTION     DEVICE_GROUP_UUID                       DEVICES
"Auto_API_GP1"                          "Auto_API_GP1"  "03be550b-3744-484e-88c5-d25e1ed865c0"
"Auto_API_GP2"                          "Auto_API_GP2"  "3a8e2ee4-3a59-4fba-aaf0-0d527d20fe13"  "1a7a2092-29bd-4178-88e9-1373ee5886de"
"Auto_API_GP3"                          "Auto_API_GP3"  "ba1ead89-34f5-4084-a9a2-8a681e83164d"
"81a3969c-1cc3-4f13-8602-afcb981d5295"
"8bbfd1a7-e048-4148-abeb-354763b6aef7"

我对结果的期望:

========== DEVICES ==========
DEVICE_GROUP_NAME  DESCRIPTION     DEVICE_GROUP_UUID                       DEVICES
"Auto_API_GP1"     "Auto_API_GP1"  "03be550b-3744-484e-88c5-d25e1ed865c0"  "1a7a2092-29bd-4178-88e9-1373ee5886de"
"Auto_API_GP2"     "Auto_API_GP2"  "3a8e2ee4-3a59-4fba-aaf0-0d527d20fe13"  "81a3969c-1cc3-4f13-8602-afcb981d5295"
"Auto_API_GP3"     "Auto_API_GP3"  "ba1ead89-34f5-4084-a9a2-8a681e83164d"  "8bbfd1a7-e048-4148-abeb-354763b6aef7"

我是这方面的绝对初学者,非常感谢任何见解。谢谢!

所以我不再盯着脚本看足够长的时间来吃午饭和喝咖啡,并认为我上面发布的代码删除了第一个输出上的括号,但要么输入一个新行,要么用一个新行替换括号.所以我简单地替换了

tr -d '[]'

tr -s '[]' '\n'

现在可以按预期工作了。

我谦虚地做,除了任何更正或更有效的方法。 :)