2016-01-13 27 views
3

我試過getent,組命令,id -Gn $ user和一些sed組合,但是我不認爲我能夠實現,程序員。
我希望能夠把它打印出來:組ABC123
輸出 ABC123:DEVOPS構建測試設計如何在多行而不是單行輸出上打印linux組名稱

期望輸出
組:
- DEVOPS
- 建立
- 測試
- 設計

+0

您可以從那裏開始:groups abc123 | sed's// \ n -/g' 然後嘗試改進 – Sergius

+0

如果你的shell是bash(或支持數組),你可以做一些簡單的事情,比如'arr =($(groups)); printf「%s \ n」$ {arr [@]}'。如果你想要領先的'' - '',那麼你可以做'arr =($(groups)); printf - 「 - %s \ n」$ {arr [@]}' –

+0

謝謝@Sergius部分工作,但至少讓我的sed權利:) – HazeCloud

回答

1

從我所看到的,你想你的用戶羣體轉化爲yaml陣列,嘗試使用:

echo "groups:" ; for i in $(id -Gn myuser);do echo " - $i" ;done 

groups: 
    - users 
    - lp 
    - vboxusers 
    - kvm 

您可以使用太多:

echo "groups: [ $(groups myuser | sed -e 's/.\+\s\+:\s\+\(.\+\)/\1/g' -e 's/\(\s\+\)/, /g') ]" 

groups: [ myuser, lp, vboxusers, kvm ] 
+0

是的正確:)謝謝你會嘗試所有建議一個接一個看看哪一個最適合我的腳本 – HazeCloud

+0

測試和這個工作出色 – HazeCloud

0

使用bash

for i in `groups`; do echo $i; done 

使用tr

groups | tr \ \\n 
+0

謝謝@bibi我必須學習新鮮玩意。我以前從未嘗試過tr命令。這也適用 - 但是我們在組名前沒有連字符的輸出,但是我玩弄了一些,並且發現了它。 – HazeCloud

+0

這隻適用於名稱中沒有空格的組! – Chris

相關問題