如何在当前目录中 grep 字符串模式

如何在当前目录中 grep 字符串模式

我想识别在命令行上作为参数提供的字符串。我只需要在当前目录和档案中搜索。我的命令是:

if grep -s "$1" * .* 
then echo "found" else echo "not found"

但是例如,如果我有一个文件夹包含单词“father”,另一个文件夹包含单词“fathersa”,并且字符串输入是“father”,我的代码会输出两个文件夹。但是如果我的输入是“father”(father 和空格),则输出应该只有第一个文件夹,但我的代码会显示两个文件夹。我应该怎么做?此外,此命令是否足以从我当前的目录中搜索所有文件夹和档案?编辑:我正在使用 Ubuntu 桌面(Ubuntu 12.04.4 LTS)

我也尝试过,grep -w 但我的字符串不完全是固定字符串,它实际上是一种模式,所以它不是我真正想要的。如果我的输入是“fa”,我的代码应该输出所有包含“fa”结构的文件夹,如“father”,“fat”等等,但如果我的输入是带有空格的“fa”,我的输出应该只是带有“fa”的文件夹,仅此而已

答案1

使用grep -w

-w,——单词-正则表达式
仅选择包含形成完整单词的匹配项的行。

您可能还想使用-q。如果您有一个固定字符串而不是模式,请添加-F以使grep执行速度更快!

您的命令不会递归搜索。

相关内容