Regex 使用正则表达式从/etc/passwd提取UID
我想从/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的详细信息,请参阅 你没有告诉我们你到底想做什么,所以我猜你可能
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]+?