Grep

Grep 正則表達式不再為我工作

  • September 2, 2021

對不起,如果這個問題有點不合適,但我剛剛開始學習 Linux 2 天,而且我自己並沒有任何知識來解決這個問題。我在這裡嘗試grep使用這個水果列表的命令,一切都很順利,直到我繼續嘗試這個表達式。/

我想我按下了某種帶有下劃線的組合鍵,現在大多數正則表達式似乎都搞砸了(以及文件名現在加了下劃線,如果這在任何方面都很重要的話)。例如,當我輸入:

cat fruits | grep ^ma

我沒有結果,mandarinemango沒有出現。

當我輸入:

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/

引用自:https://unix.stackexchange.com/questions/666281