1

我想切断/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 或其他数字。

4

2 回答 2

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
于 2013-01-16T15:16:07.793 回答
0
cat /etc/passwd | egrep '([^:]+:){3}1009:'

“三个(一些非冒号,然后是冒号),然后是 1009,然后是另一个冒号。”

(您需要尾随冒号来省略组 10090。)

于 2013-01-16T15:12:54.290 回答