Grep
Grep 正則表達式不再為我工作
對不起,如果這個問題有點不合適,但我剛剛開始學習 Linux 2 天,而且我自己並沒有任何知識來解決這個問題。我在這裡嘗試
grep
使用這個水果列表的命令,一切都很順利,直到我繼續嘗試這個表達式。/
我想我按下了某種帶有下劃線的組合鍵,現在大多數正則表達式似乎都搞砸了(以及文件名現在加了下劃線,如果這在任何方面都很重要的話)。例如,當我輸入:
cat fruits | grep ^ma
我沒有結果,
mandarine
也mango
沒有出現。當我輸入:
cat fruits | grep dam*
或者
cat fruits | grep dam
Damson
沒有出現。最重要的是,終端右側有一個錯誤十字:誰能簡單地解釋一下如何讓它再次工作?非常感謝!
正則表達式區分大小寫。您的文件包含
Mandarine
大寫字母M
,但您正在搜尋以 . 開頭的行ma
。嘗試這個:grep '^Ma' fruits
另請注意,我已將正則表達式 (RE) 放在單引號中。這會阻止 shell 嘗試將其作為應處理的單詞進行測試 - 例如,通過將其與目前目錄中的文件進行匹配。
如果要進行不區分大小寫的比較,請使用
grep -i
. 例如,grep -i 'ma' fruits
您可能因意外擊鍵組合而破壞了 bash 或 dash shell。Bash 及其對應的 shell,例如 dash,是高度可配置的程序,可以將您鍵入的內容轉換為核心可以理解的內容。
大部分配置都是用 完成的
/home/user/.bashrc
,但是有許多動態修改只需要一個鍵組合。通常,如果您關閉終端視窗,這些修改會被重置。
source .bashrc
在某些情況下,也可以用於復位。見https://linuxhandbook.com/source-command/