2016-03-03 25 views
1

我正在使用curl從配置中獲取特定數組值的腳本。 Tom Fenech幫助列格式化。我遇到了另一個問題,即列格式由tr和cut命令偏斜。一個數組集的命令輸出包含圍繞該對象的關鍵字的方括號。我使用tr或cut來刪除周圍的括號,並且他們完成了這項工作,但列格式是傾斜的。這裏是我的代碼:使用tr或cut skews列格式

# 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" 

我在這一個絕對的初學者,任何見解是非常讚賞。謝謝!

回答

0

所以我停在腳本盯着足夠長的時間來獲得午餐,咖啡和計算過,我上面貼的代碼被移除的第一輸出的方括號,但要麼進入一個新行或新行更換支架。於是我簡單地更換

tr -d '[]' 

tr -s '[]' '\n' 

,現在按預期工作。

我謙虛地除了任何更正或更有效的方式。 :)