我有一個文件temp.txt如下。grep找不到「。*」字符串值
a.*,super
我想給grep .*
來檢查值是否存在於文件或不在家。使用
命令:
grep -i ".*" temp.txt
返回任何
我有一個文件temp.txt如下。grep找不到「。*」字符串值
a.*,super
我想給grep .*
來檢查值是否存在於文件或不在家。使用
命令:
grep -i ".*" temp.txt
返回任何
使用AWK
awk '/\.\*/' file
或fgrep一樣
fgrep ".*" file
兩個.
,*
在正則表達式中的特殊含義。逃避他們匹配字面。
$ cat temp.txt
a.*,super
$ grep "\.\*" temp.txt
a.*,super
$ echo $?
0
$ grep "there-is-no-such-string" temp.txt
$ echo $?
1
-i
不需要,因爲在正則表達式中沒有字母表。
這是因爲grep
認爲該模式爲正則表達式。
要使grep
將其解釋爲文字,請使用-F
。
grep -F ".*" temp.txt
而且,不需要注-i
,因爲沒有區別的情況下考慮到(我們比如用它來製作的grep返回AB
,aB
,Ab
和ab
做grep -i "ab"
時)。
作爲man grep
說:
-F,--fixed串
解釋圖案作爲固定的字符串的列表,由換行分隔,其中 任何的是匹配。 (-F由POSIX指定。)
-i,--ignore情況
忽略大小寫區別在圖案和輸入的文件兩者。 (-i 由POSIX指定。)
'人bash',部分'REGULAR EXPRESSIONS'。 –
我希望該命令可以返回文件中的每一行,而不是任何內容。 – chepner