我试图使用' *'在模式文件中查找某些内容。但是没有用,不知道怎么做?
这就是我想要做的事情:
grep "files*.txt" $myTestFile
没有返回任何东西,它假设" *"应该是全部。
答案 0 :(得分:1)
默认情况下,// Add documents
client.add(docs,function(err,obj){
if(err){
console.log(err);
}else{
console.log(obj);
}
});
不支持扩展常规快递,但 grep -E 或 egrep 支持。
egrep" files。* \ .txt" $ myTestFile
或
grep -E" files。* \ .txt" $ myTestFile
此外,还提供了三个变体计划grep
,egrep
和fgrep
。 rgrep
与egrep
相同。 grep -E
与fgrep
相同。 grep -F
与rgrep
相同。直接
不推荐使用grep -r
或egrep
作为调用,但提供这些调用是为了允许依赖它们的历史应用程序不加修改地运行。
fgrep
答案 1 :(得分:1)
如果您只想匹配完全字符串 files*.txt
,那就是:
# match exactly "files*.txt"
grep -e "files[*][.]txt" "$myTestFile"
...或者,更简单地使用fgrep
来匹配给定的确切字符串:
# match exactly "files*.txt"
fgrep -e 'files*.txt' "$myTestFile"
[*]
定义了一个只包含单个字符的字符类 - *
- 包含,因此只匹配那个字符。基于反斜杠的转义也是可能的,但在不同的上下文中可能有不同的含义,因此不太可靠。
如果您想匹配包含files
和更晚.txt
的任何行,那么:
# match any line containing "files" and later ".txt"
grep -e "files.*[.]txt" "$myTestFile"
.*
匹配零个或多个字符,因此是与glob-pattern *
等效的正则表达式。同样,在glob模式.
只匹配自身时,正则表达式.
可以匹配任何字符,因此.
中的.txt
需要进行转义,如{ {1}},以防止它与其他任何内容匹配。