Grep 正規表示式不起作用

Grep 正規表示式不起作用

因此,我創建了一個簡單的 grep 命令,該命令僅獲取用戶名以 161 開頭且旁邊有 3 位數字的最後登入者:

last | grep "^161[0-9]{3}"

但是,即使清單中包含這些使用者名,它也不會列印任何內容。更奇怪的是如果我用egrep而不是grep

last | egrep "^161[0-9]{3}"

該命令有效。

誰能解釋一下有什麼差別嗎?

答案1

正如 Steeldriver 已經指出的那樣,grep使用基本正規表示式,grep -Eegrep使用擴展正規表示式。

last | grep  '^161[0-9]\{3\}'
last | egrep '^161[0-9]{3}'

相關內容