我有一个包含 2000 个文件的目录。我需要知道目录中的哪些文件包含文件中的字符串“example”,并将文件名输出到存在的list.txt文件中,因此我最终得到list.txt,其中包含所有包含“example”的文件的文件名。
#!/bin/bash
files = /dir/*
for f in $files
do
if grep -i "example" $f; then
echo "found"
echo $f >> ~/list.txt
fi
done
所以我希望 list.txt 包含内容中包含字符串“example”的文件列表。
我没有进行追加操作(list.txt 仍为空),但我得到了实例数“找到”的回显。
最佳答案
尝试将目录路径放在“”标记中,如下所示:
#!/bin/bash
files="/path/to/files/*"
for f in $files
do
if grep -i "example" $f; then
echo "found"
echo $f >> ~/found.txt
fi
done
我刚刚测试了上面的脚本,并且每次更改 grep 正在搜索的单词时都会起作用。
关于linux - Grep 查找 dir 中所有文件中的字符串,如果找到则将输出文件名附加到 txt?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56973390/