我有这样的脚本,它搜索我的邮件文件,如果找到关键字,它会将所有文件移动到其他位置。
如何让它适用于多个关键字?例如,我会有11个KEY,我不想一遍又一遍地复制和粘贴查找命令。
DIRF='move/from'
DIRT='move/to'
KEY='discount'
find $DIRF -type f -exec grep -ilR "$KEY" {} \; | xargs -I % mv % $DIRT
答案 0 :(得分:3)
为什么你在这里使用find
?
您已经告诉grep
递归操作(-R
),所以只需将其指向$DIRF
即可。如果您只提供文件(来自-R
),那么type -f
也毫无意义。
同样grep
采用可以进行交替的模式。只需使用它。
grep -RilE 'KEY1|KEY2|KEY3|Key4' "$DIRF"
答案 1 :(得分:1)
for KEY in "discount" "other_value" "other_value2"
do
find $DIRF -type f -exec grep -ilR "$KEY " {} \; | xargs -I % mv % $DIRT
done