Bash 使用egrep排除系统用户
我尝试排除所有系统用户,并尝试在Solaris 10中获取真实用户列表。我尝试了两种方法:Bash 使用egrep排除系统用户,bash,grep,solaris,Bash,Grep,Solaris,我尝试排除所有系统用户,并尝试在Solaris 10中获取真实用户列表。我尝试了两种方法: egrep -v "root|daemon|bin|sys|adm|lp|uucp|nuucp|smmsp|listen|webservd|postgres|svctag|unknown|nobody|noaccess|nobody4|perl|sshd" /etc/passwd 及 但两者都产生了空输出。(没有错误消息)。那么正确的方法是什么呢?问题是passwd条目包括一个shell字段,它通常看
egrep -v "root|daemon|bin|sys|adm|lp|uucp|nuucp|smmsp|listen|webservd|postgres|svctag|unknown|nobody|noaccess|nobody4|perl|sshd" /etc/passwd
及
但两者都产生了空输出。(没有错误消息)。那么正确的方法是什么呢?问题是
passwd
条目包括一个shell字段,它通常看起来像/bin/sh
,/usr/bin/bash
,等等。您已经将序列bin
包含在排除列表中(试图排除bin
用户),并且它排除了每个条目
尝试限制筛选,例如要求匹配从行首开始:
egrep -v "^(root|daemon|bin|sys|adm|lp|uucp|nuucp|smmsp|listen|webservd|postgres|svctag|unknown|nobody|noaccess|nobody4|perl|sshd)" /etc/passwd
egrep -v "^(root|daemon|bin|sys|adm|lp|uucp|nuucp|smmsp|listen|webservd|postgres|svctag|unknown|nobody|noaccess|nobody4|perl|sshd)" /etc/passwd