我希望删除同一组中/etc/passwd
个用户的行。
如果我的小组有uid 1009我想要这个小组/etc/passwd
的所有行
user1:x:1001:1009::/home/user1:/bin/bash
user2:x:1002:1009::/home/user2:/bin/bash
user3:x:1003:1009::/home/user3:/bin/bash
我尝试了cat /etc/passwd | grep 1009
,但它不起作用,因为数字1009也可以是uid或其他数字。
答案 0 :(得分:5)
使用awk
使用字段分隔符:
$ awk -F: '$4==1009' /etc/passwd
user1:x:1001:1009::/home/user1:/bin/bash
user2:x:1002:1009::/home/user2:/bin/bash
user3:x:1003:1009::/home/user3:/bin/bash
答案 1 :(得分:0)
cat /etc/passwd | egrep '([^:]+:){3}1009:'
“三批(一些非冒号然后冒号),然后是1009,然后是另一个冒号。”
(您需要使用尾随冒号来省略组10090.)