Regex 使用正则表达式从/etc/passwd提取UID

Regex 使用正则表达式从/etc/passwd提取UID,regex,extract,text-extraction,uid,passwd,Regex,Extract,Text Extraction,Uid,Passwd,我想从/etc/passwd文件中提取UID,如下所示- www-data:x:33:33:www-data:/var/www:/bin/sh 我面临的问题是,即使我匹配前33个,第二个33(GID)也会匹配。我如何只匹配第一个事件 到目前为止,我已经在第二个字段中找到了这个-[\d]+,这个x用于包含加密密码。现在,您几乎可以确定所有条目都是x,因此您可以使用以下内容: $ grep x:33 /etc/passwd 有关该x的详细信息,请参阅 你没有告诉我们你到底想做什么,所以我猜你可能

我想从/etc/passwd文件中提取UID,如下所示-

www-data:x:33:33:www-data:/var/www:/bin/sh
我面临的问题是,即使我匹配前33个,第二个33(GID)也会匹配。我如何只匹配第一个事件


到目前为止,我已经在第二个字段中找到了这个-
[\d]+

,这个
x
用于包含加密密码。现在,您几乎可以确定所有条目都是
x
,因此您可以使用以下内容:

$ grep x:33 /etc/passwd
有关该
x
的详细信息,请参阅

你没有告诉我们你到底想做什么,所以我猜你可能想看看
manid
手册页

如果您只对uid感兴趣,则可以使用
cut

$ cut -f 3 -d: /etc/passwd

你需要使用所有格量词:

试一试


你能把你的正则表达式匹配器限制为只匹配一个吗?你当前使用的正则表达式是什么?用我现在的更新我正在尝试从/etc/passwd文件中提取UID
[\d]+?