幫助指令尋找少於 8 個字元的使用者名

幫助指令尋找少於 8 個字元的使用者名

我剛開始學習 Linux 課程,並且一直在做我的作業。

我需要查找用戶名少於 8 個字元的登入用戶的用戶名。這是我嘗試過的命令,但它不起作用。有人可以告訴我我可能做錯了什麼嗎?

who | grep '[a-zA-Z0-9]\{1,7\}'

下面的命令返回 8 個字元的用戶名(我已經測試過並且它有效)

who | grep '[a-zA-Z0-9]\{8\}'

答案1

如果您不限於使用grep,那麼我建議使用awk,它自然地將每一行分成以空格分隔的列,然後要求第一列包含少於八個字元的行:

who | awk 'length($1) < 8 {print $1}'

給出的輸出who如下圖所示:

user1      pts/1        2019-11-24 16:31 (host1.example.com)
user1      pts/2        2019-11-24 16:31 (host1.example.com)
deadbeef   pts/3        2019-11-24 20:39 (host2.example.com)
aperson    pts/4        2019-11-24 20:39 (host3.example.com)
igotroot   pts/5        2019-11-24 20:39 (host4.example.com)

上述awk命令將產生:

user1
user1
aperson

awk您可以將into的輸出透過管道傳輸sort -u以刪除重複項。

相關內容