使用 grep 对文件进行排序

使用 grep 对文件进行排序

我有几百个输出文件,其中一些包含错误消息。假设我想自动将所有包含字符串“ERROR_1”的文件放入“subfolder_1”中,其余文件放入第二个“subfolder_2”中。这应该可以通过管道 grep 来实现。什么是有用的语法?

答案1

for a in *;do grep -q ERROR_1 "$a" && mv "$a" subfolder_1 || mv "$a" subfolder_2;done

这应该可行。

答案2

*此脚本会将文件移动到子文件夹中。根据需要修改通配符(例如*.log)-此代码将搜索当前目录中的所有文件

for f in *
do
    grep -f ERROR_1 "$f"
    if [ $? -eq 0 ]; then
       mv "$f" subfolder_1
    else
       mv "$f" subfolder_2
    fi
done

相关内容