Shell
使用正則表達式和 Grep 轉義 *
我有一個文件,其中包含以 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