用通配符grep

use*_*171 3 grep wildcard

我想grep文件中的以下字符串:

directory1
directory2
directory3
Run Code Online (Sandbox Code Playgroud)

有没有办法用grep同时grep所有3?

例如:

cat file.txt | grep directory[1-3]
Run Code Online (Sandbox Code Playgroud)

不幸的是,上述方法无效

nne*_*neo 6

如果这些是您需要搜索的唯一字符串,请使用-F(grep表示固定字符串):

grep -F "directory1
directory2
directory3" file.txt
Run Code Online (Sandbox Code Playgroud)

如果你想使用更高级的正则表达式grep,请使用-E(使用扩展正则表达式):

grep -E 'directory[1-3]' file.txt
Run Code Online (Sandbox Code Playgroud)

请注意,有些greps(如GNU grep)不需要-E此示例.

最后,请注意您需要引用正则表达式.如果不这样做,您的shell可能会首先根据路径名扩展扩展正则表达式(例如,如果您在当前目录中有一个名为"directory1"的文件/目录,grep directory[1-3]则将grep directory1由您的shell转换).