在Unix中过滤/etc/passwd

3

我希望过滤/etc/passwd的内容,并仅显示第三列中值大于999的行。

有没有一个简单的方法可以用一行命令来实现? 我不想写一段无聊的for-loop循环。

1个回答

8
这是一个简单的方法:

这里有一种简单的做法:

awk -F: '$3 > 999' /etc/passwd

这使用了awk,字段分隔符为:,并指令它在第三个字段大于999时打印该行。如果您只想打印第一个字段(用户名),或者根据字段构建一些新行,请以此为起点:

awk -F: '{if ($3 > 999) print "user", $1, "uid", $3}' /etc/passwd

1
或者更简单的方式是:awk -F: '$3 > 999' /etc/passwd - chepner
谢谢,已作相应调整。 - Daniel Roethlisberger

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接