当前位置:  开发笔记 > 编程语言 > 正文

解析bash中的一行

如何解决《解析bash中的一行》经验,为你挑选了1个好方法。

我有一个文件,每行有一个条目.每行具有以下格式:

 "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,如何让它每行返回一个值?



1> Jay..:

您可以使用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

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有