递归搜索特定文件内的特定文本,但仅限于特定文件夹

递归搜索特定文件内的特定文本,但仅限于特定文件夹

我有一个包含许多文件夹和文件的嵌套文件夹结构。

如何在文件内部搜索某种模式,例如“sampletext”,但只有当文件名与某种模式匹配时(例如,仅在扩展名为 .txt 的文件内搜索),并且最后包含的文件夹名称必须与另一个模式匹配?(例如“data”)。

我确信我可以编写一个 shell 脚本来完成此操作,但我确信存在一些巧妙的单行脚本可以教我新的东西!

提前致谢

答案1

由于你说你有一个嵌套的文件夹结构,我相信*data*/*txt它不会满足你的需要。我建议

find . –type d –name "*data*" –exec sh –c "grep sampletext /dev/null {}/*.txt" \;

即使在只有一个文件的目录中运行时,也会/dev/null强制grep显示文件名.txt

相关内容