私はちょうどLinuxコースを聞き始め、宿題をしています。
ユーザー名が8文字未満のログインユーザーのユーザー名を見つける必要があります。これは私が試したコマンドですが、うまくいきません。誰かが私が間違っていることを教えてもらえますか?
who | grep '[a-zA-Z0-9]\{1,7\}'
以下のコマンドは8桁のユーザー名を返します。 (テストしてみた結果正しく動作します。)
who | grep '[a-zA-Z0-9]\{8\}'
答え1
を使用することに限定されない場合は、各行をスペースで区切られた列に自然に分割し、最初の列に8文字未満の行を含める必要があることをお勧めします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
出力をパイプで接続してsort -u
重複を排除できます。