我有一个文件,每行有一个条目.每行具有以下格式:
"group:permissions:users"
权限和用户可以有多个由逗号分隔的值,如下所示:
"grp1:create,delete:yo,el,ella"
我想要的是返回以下内容:
yo el ella
这是我到目前为止:
cat file | grep grp1 -w | cut -f3 -d: | cut -d "," -f 2
返回yo,el.ella
,如何让它每行返回一个值?
您可以使用awk,使用-F选项:作为字段分隔符:
[user@host]$ echo "grp1:create,delete:yo,el,ella" | awk -F ':' '{print $3}' yo,el,ella
这将获得用户字符串,以逗号分隔.然后,您可以使用该字符串执行任何操作.如果你想逐行打印每个用户一个,你可以使用tr用新行代替逗号:
[user@host]$ echo "grp1:create,delete:yo,el,ella" | awk -F ':' '{print $3}' | tr ',' '\n' yo el ella