我试过getent,组命令,id -Gn $ user和一些sed组合,但是我不认为我能够实现,程序员。
我希望能够把它打印出来:组ABC123
输出 ABC123:DEVOPS构建测试设计如何在多行而不是单行输出上打印linux组名称
期望输出
组:
- DEVOPS
- 建立
- 测试
- 设计
我试过getent,组命令,id -Gn $ user和一些sed组合,但是我不认为我能够实现,程序员。
我希望能够把它打印出来:组ABC123
输出 ABC123:DEVOPS构建测试设计如何在多行而不是单行输出上打印linux组名称
期望输出
组:
- DEVOPS
- 建立
- 测试
- 设计
从我所看到的,你想你的用户群体转化为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 ]
您可以从那里开始:groups abc123 | sed's// \ n -/g' 然后尝试改进 – Sergius
如果你的shell是bash(或支持数组),你可以做一些简单的事情,比如'arr =($(groups)); printf“%s \ n”$ {arr [@]}'。如果你想要领先的'' - '',那么你可以做'arr =($(groups)); printf - “ - %s \ n”$ {arr [@]}' –
谢谢@Sergius部分工作,但至少让我的sed权利:) – HazeCloud