在当前目录中递归搜索字符串
我想从我所在的目录中递归搜索所有文件以获取特定字符串。
我试过了
grep -r -i my_string
我在一个带有两个小文件的测试文件夹中尝试了它,但它找不到字符串。
另外,有没有特殊的方法来定义“包含”而不是匹配整个单词?
您在文件中搜索文件名或单词吗? grep在文件里面搜索,这似乎是你想要的。
grep使用正则表达式 – 实际上,这就是“re”部分所代表的含义。 所以,它不使用普通的bash通配符; 也就是说, abc*
不会找到以abc开头的单词,它会找到以ab开头的单词,然后是零或更多c。 但是,是的,如果你只是给它一个模式,它会在任何地方找到它,而不知道整个单词。 如果你想找到整个单词,你需要创建一个正则表达式来告诉它。
但是,像大多数命令一样,您需要将文件名放在命令的末尾,因此您的示例将只是坐在那里等待文件名。
正如@plink所说,使用
grep -r -o -i "your_string" *`
(或*.*
,或其他filespec)。 错误可以忽略。 如果您遇到很多错误,可以将2>/dev/null
附加到末尾,这会将stderr重定向到空设备。