Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
File 灰显模式和删除文件_File_Grep - Fatal编程技术网

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
    忽略二进制文件
因此:

然后将此结果提供给其他实用程序以执行备份,例如xargs:

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
    忽略二进制文件
因此:

然后将此结果提供给其他实用程序以执行备份,例如xargs:

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;-)@伊尔韦克斯:谢谢-投票表决你的答案。:-)(语法自我更正:“开关的作用”。)