如何获得具有特定前缀字母的轮式用户

时间:2014-03-20 16:31:21

标签: sed

cat /etc/group | grep wheel
wheel:x:10:I0173203,i04317303,raccount,d454523,c564566,C555533,D2354546

我想只提取以c\C i\I d\D

开头的用户

如何获得所需的输出?

I0173203 i04317303 d454523 c564566 C555533 D2354546

2 个答案:

答案 0 :(得分:3)

我会使用awk

$ awk -F[:,] '/^wheel/ { 
      for(i=4;i<=NF;i++) if($i~/^[cCiIdD]/) printf "%s%s",$i,(i==NF?RS:OFS)
    }' /etc/group
I0173203 i04317303 d454523 c564566 C555533 D2354546

您还可以使用perl

perl -nle '@m=(m/[:,]([iIcCdD]\w+)/g) if $_=~/^wheel/ }{ print "@m"' /etc/group

答案 1 :(得分:2)

cat /etc/group | grep wheel | sed 's/^.*:\(.*\)$/\1/g' | sed 's/,/\n/g' | egrep '^[cCiIdD].*'

在链中运行第一个命令,查看结果。然后添加第二个,看结果,......