【问题标题】:extract UID from /etc/passwd using RegEx [duplicate]使用 RegEx 从 /etc/passwd 中提取 UID [重复]
【发布时间】:2011-12-29 03:04:16
【问题描述】:

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

www-data:x:33:33:www-data:/var/www:/bin/sh

我面临的问题是,即使我匹配第一个 33,第二个 33 (GID) 也会匹配。我如何只匹配第一次出现?

到目前为止,我有这个-[\d]+

【问题讨论】:

  • 你能限制你的正则表达式匹配器只匹配一个吗?
  • 你目前使用的是什么正则表达式?
  • 更新了我现在所拥有的

标签: regex extract text-extraction uid passwd


【解决方案1】:

你需要使用所有格量词:

试试

[\d]+?

【讨论】:

    【解决方案2】:

    第二个字段中的x 用于包含加密密码。如今,您几乎可以确定所有条目都是x,因此您可以使用以下内容:

    $ grep x:33 /etc/passwd
    

    有关x 的详细信息,请参阅shadow password

    您没有告诉我们您实际上要做什么,所以我猜您可能想查看 man id 手册页。

    如果你只对 uid 感兴趣,那么你可以使用cut:

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

    【讨论】:

    • 我正在尝试从 /etc/passwd 文件中提取 UID
    猜你喜欢
    • 2018-10-28
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-10
    • 1970-01-01
    相关资源
    最近更新 更多