File 灰显模式和删除文件
我有一个外部文件,其中包含模式列表(每行模式) 我想File 灰显模式和删除文件,file,grep,File,Grep,我有一个外部文件,其中包含模式列表(每行模式) 我想grep所有文件,包括使用这些模式的子文件夹中的文件,如果模式匹配,请将文件复制到some/tmp/mybackup/,然后将其删除。做这件事的好方法是什么?试试看 for x in `fgrep -f patternfile.txt -l -r .`; do cp $x /tmp/mybackup; rm $x; done 试一试 如果我正确理解您的问题,您需要以下切换到grep: -R递归扫描 -l仅打印匹配的文件名 -f从文件中读取图
grep
所有文件,包括使用这些模式的子文件夹中的文件,如果模式匹配,请将文件复制到some/tmp/mybackup/,然后将其删除。做这件事的好方法是什么?试试看
for x in `fgrep -f patternfile.txt -l -r .`; do cp $x /tmp/mybackup; rm $x; done
试一试
如果我正确理解您的问题,您需要以下切换到grep:
递归扫描-R
仅打印匹配的文件名-l
从文件中读取图案-f
忽略二进制文件-I
grep -RlIf patterns-file * | xargs -I {} mv {} /tmp/backup
或使用循环:
for afile in `grep -RlIf patterns-file *`; do
mv $afile /tmp/backup
done
如果我正确理解您的问题,您需要以下切换到grep:
递归扫描-R
仅打印匹配的文件名-l
从文件中读取图案-f
忽略二进制文件-I
grep -RlIf patterns-file * | xargs -I {} mv {} /tmp/backup
或使用循环:
for afile in `grep -RlIf patterns-file *`; do
mv $afile /tmp/backup
done
你能再解释一下吗?当然,基本上检查一下当前目录中的所有文件(包括子文件夹)和
grep
行,其中包含与给定模式(从列表文件)匹配的内容。如果找到了模式,请备份找到的文件并将其从当前文件夹中删除。“复制然后删除”。为什么不直接移动文件?@thkala:你完全正确!那会管用的,那正是我要找的!你能再解释一下吗?当然,基本上检查一下当前目录中的所有文件(包括子文件夹)和grep
行,其中包含与给定模式(从列表文件)匹配的内容。如果找到了模式,请备份找到的文件并将其从当前文件夹中删除。“复制然后删除”。为什么不直接移动文件?@thkala:你完全正确!那会管用的,那正是我要找的!使用Eelvex的答案而不是我的答案,因为他使用了xargs并解释了开关的功能(我没有足够的声誉来支持投票或在其他人的回复中添加评论)-而且我也没有(也没有)意识到cp+rm==mv;-)@伊尔韦克斯:谢谢-投票表决你的答案。:-)(语法自我更正:“开关做什么”。)使用Eelvex的答案而不是我的答案,因为他使用xargs并解释开关做什么(我没有足够的声誉来支持投票或在别人的回复中添加评论)-而且我也没有(也没有)意识到cp+rm==mv;-)@伊尔韦克斯:谢谢-投票表决你的答案。:-)(语法自我更正:“开关的作用”。)