我从下面的命令得到了输出。需要提取组名。
dsAttrTypeNative:memberOf: CN=Grupa_test,OU=Groups,DC=yellow,DC=com CN=Firefox_Install,OU=Groups,DC=yellow,DC=com CN=Network_Admin,OU=Groups,DC=yellow,DC=com
所以我希望有类似的东西:
Grupa_test
Firefox_Install
Network_Admin
每次的团体数量会有所不同,所以我不知道如何实现这一目标。
答案 0 :(得分:2)
$ awk -v RS=' ' -F'[=,]' 'NR>1{print $2}' file
Grupa_test
Firefox_Install
Network_Admin
以上内容适用于任何awk。
答案 1 :(得分:0)
你可以用GNU grep:
来做grep -oP '(?<=CN=)[^,]*' file
答案 2 :(得分:0)
尝试跟随awk一次。
awk -v RS='[ ,]' -v FS="=" '/CN=/{print $2}' Input_file
答案 3 :(得分:0)
$ awk -v FPAT="CN=[^,]+" '{for(i=1;i<=NF;i++)print substr($i,4)}' Input_file
将每个匹配的CN=[^,]+
个案视为一个字段。对于每个匹配的字段,请使用substr($i,4)
过滤掉CN=
,以打印所需的字符串。