Awk让我所有的普通用户陷入困境


8

我有一个剧本。

我想从/etc/shadow阴影文件第二个词以$或开头的所有用户中获取所有常规用户!$

我的模式是

sudo getent shadow | awk -F: '$2 ~ /^$/ || /^!$/ {print $1}'

目前不起作用。


一定要awk吗?:-)
Rinzwind '19

Answers:


11

您需要转义$,因为它是“行尾”的特殊字符,就像^“行开始”一样。

sudo getent shadow | awk -F: '$2 ~ /^\$/ || $2 ~  /^!\$/ {print $1}'

+1好
收成

谢谢,它有效。我只需
要不

1
简化:awk -F: '$2 ~ /^!?\$/ {print $1}'-这个结合了两个赛测试,并表示“在外地的开始匹配一个美元符号,任选的(?)前面有一个!
暂停,直至另行通知。

4

所有设置了密码的用户都可以这样列出:

getent shadow | egrep '^[^:]*:[*!]:' -v | cut -f1 -d:
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.