awk处理筛选内容

我们NIS服务器上很多帐号无效之后只删除了passwd文件里的帐号名,group文件没有修改,导致现在很多不存在的IDgroup里面加入了很多组。现在要把这些无效IDgroup文件移除,请问有什么好办法

 

举例:

passwd

aaa:59029:59029::/local/aaa:/bin/bash

bbb:59030:59030::/local/bbb:/bin/bash

ccc:59031:59031::/local/ccc:/bin/bash

 

group:

group1::341:aaa,bbb

group2::341:ccc,ddd

group3::341:bbb,eee

 

现在如何把不存在的帐号dddeee删除呢 ?

处理办法:

awk -F':' 'NR==FNR{a[$1]=1;next}{t=split($NF,b,",");g="";for(i=1;i<=t;i++)if(a[b[i]]){g=g?g","b[i]:b[i];$NF=g}}1' passwd  group

这种处理方法:需要注意的是 如果在处理文本的过程中需要有多个或者一个的情况,这时候三元表达式是比较好的处理方式。     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值