
そこで、ユーザー名が 161 で始まり、その後に 3 桁の数字が続く、最後にログインしたユーザーのみを取得する簡単な grep コマンドを作成します。
last | grep "^161[0-9]{3}"
しかし、リストにこれらのユーザー名があるにもかかわらず、何も印刷されません。さらに奇妙なのは、grepの代わりにegrepを実行すると、
last | egrep "^161[0-9]{3}"
コマンドは機能します。
誰か違いを説明してくれませんか?
答え1
steeldriver がすでに指摘したように、grep
は基本的な正規表現を使用しますがgrep -E
、 はegrep
拡張正規表現を使用します。
last | grep '^161[0-9]\{3\}'
last | egrep '^161[0-9]{3}'