gpt4 book ai didi

linux - Grep 用于多个目录的关键字并移动找到的文件

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:36:26 27 4
gpt4 key购买 nike

我有一个包含多个文件夹和 66gb 文件的文件夹。 (.doc/.docx/.xls/.xlsx/.msg.等..)

我需要一个循环命令,它将在整个目录结构中递归搜索文件正文和/或标题中的关键字,然后将找到的文件移动到单独的位置。

我试过这个命令,它适用于单个文件夹,但是当我将 -r 添加到 grep 命令时,它会抓取整个文件夹,因为其中一个文件包含关键字搜索匹配项。

for file in *
do
if grep -rq 'Pro*' "$file"
then
sudo mv "$file" /home/pdog/Downloads/testmv/
fi
done

在过去的 24 小时内,我一直在寻找执行此操作的方法,但我只是想不通为什么还要移动整个文件夹?

最佳答案

尝试

for file in `grep -rl ...`

-l (--files-with-matches) 只会打印文件名,所以你最终应该得到所有匹配文件的集合,就像你想要的。

编辑:要处理空格,试试这个:

OLDIFS="$IFS"
FILES=`grep -rl ...`
IFS="$OLDIFS"
for file in $FILES
do
...
done

关于linux - Grep 用于多个目录的关键字并移动找到的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17561092/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com