剪切同一组用户的/ etc / passwd行

时间:2013-01-16 15:09:07

标签: linux awk grep cut passwd

我希望删除同一组中/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或其他数字。

2 个答案:

答案 0 :(得分:5)

使用awk使用字段分隔符:

将第四个字段与您想要的uid进行比较
$ 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.)