如何使用 bash 脚本在文件内容中查找文件名?
How to find filename in file content with bash script?
我在我的 shell 中写了这个命令,但它没有按照我想要的方式执行,我无法弄清楚我做错了什么。我想从当前目录中获取在内容中包含其名称的文件。
find -type f -exec grep -il {} +
我明白 find -type f
给了我目录中的标准文件,-exec
在给定文件 ('+') 上执行以下带有模式的 grep
命令 - 即文件名。我对吗?因为它没有找到我为此目的专门创建的文件,所以我好像不明白什么。
on given file ('+')
+
对 所有 找到的文件执行命令。 {}
被当前目录中的 文件列表 替换。
使用 -exec echo grep -il {} +
进行调试。
你想要:
-exec grep -Fil {} {} ';'
在名为 {}
的文件中搜索文件名 {}
作为模式。 ';'
终止命令。
我还添加了 -F
从字面上解释模式。
当前目录中的文件test.txt
文件内容包括“test”
find . -name 'test.txt' -exec grep -i 'test' {} \;
我在我的 shell 中写了这个命令,但它没有按照我想要的方式执行,我无法弄清楚我做错了什么。我想从当前目录中获取在内容中包含其名称的文件。
find -type f -exec grep -il {} +
我明白 find -type f
给了我目录中的标准文件,-exec
在给定文件 ('+') 上执行以下带有模式的 grep
命令 - 即文件名。我对吗?因为它没有找到我为此目的专门创建的文件,所以我好像不明白什么。
on given file ('+')
+
对 所有 找到的文件执行命令。 {}
被当前目录中的 文件列表 替换。
使用 -exec echo grep -il {} +
进行调试。
你想要:
-exec grep -Fil {} {} ';'
在名为 {}
的文件中搜索文件名 {}
作为模式。 ';'
终止命令。
我还添加了 -F
从字面上解释模式。
当前目录中的文件test.txt
文件内容包括“test”
find . -name 'test.txt' -exec grep -i 'test' {} \;