Shell

使用正則表達式和 Grep 轉義 *

  • July 16, 2020

我有一個文件,其中包含以 2 星 (**) 開頭的獨特行。

但是,當我執行 grep 命令時

grep \*\* fileName 

我得到了文件中的所有行。這是非常不尋常的,我認為不匹配的行不包含**。

我將如何逃避 ** 以找到正確的行?

所以嘗試:

egrep "^\*\*" YOUR_FILE

不要忘記使用雙引號。

**注意:**使用egrep代替grep.

如果你想使用grep使用grep -E

grep您也可以通過指示要匹配的字元串是固定字元串來實現相同的目的。執行此操作的開關是-F--fixed-strings

-F, --fixed-strings
         Interpret  PATTERN  as  a  list of fixed strings, separated by 
         newlines, any of which is to be matched.  (-F is specified by
         POSIX.)

所以這樣的事情會做到這一點:

$ grep -F "**" somefile.txt

例子

$ cat somefile.txt
** blah
blahblah
** hi

Grepping文件會產生這個:

$ grep -F "**" somefile.txt
** blah
** hi

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