Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/26.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
Linux 移动并删除文件夹中与grep匹配的所有文件_Linux_Bash_Awk_Grep - Fatal编程技术网

Linux 移动并删除文件夹中与grep匹配的所有文件

Linux 移动并删除文件夹中与grep匹配的所有文件,linux,bash,awk,grep,Linux,Bash,Awk,Grep,此命令: find buffer/ | grep -i $varname 返回文件名列表。我想把它们压缩成单独的压缩文件,然后 将这些压缩文件保存到文件夹output/中,但每个文件的名称与原始文件相同,但扩展名应为.zip 删除响应find buffer/| grep-i$varname的原始文件 编辑@Cyrus: 我已经为此努力了20分钟,这是我能想到的最好的办法: find buffer/ | grep -i $varname -exec zip "output/"

此命令:

find buffer/ | grep -i $varname
返回文件名列表。我想把它们压缩成单独的压缩文件,然后

将这些压缩文件保存到文件夹output/中,但每个文件的名称与原始文件相同,但扩展名应为.zip 删除响应find buffer/| grep-i$varname的原始文件 编辑@Cyrus: 我已经为此努力了20分钟,这是我能想到的最好的办法:

find buffer/ | grep -i $varname -exec zip "output/"'{}'.zip '{}' \;
看起来像是一份工作:

对于varname=和这样创建的文件夹缓冲区:

mkdir buffer
touch buffer/1 buffer/2
find buffer/ -type f | grep -i "$varname" | sed 's#buffer/##' | xargs -n1 -I{} -- bash -c 'zip "output/{}.zip" buffer/{}; rm "buffer/{}"'
该命令将执行:

zip output/buffer/1.zip buffer/1
zip output/buffer/1.zip buffer/2
zip output/1.zip buffer/1
zip output/2.zip buffer/2
可能您想从文件名中删除缓冲区部分,我们可以使用sed的^buffer/。我们可以指示find仅列出-type为f的文件。因此,以下是:

find buffer/ -type f | grep -i "$varname" | sed 's#buffer/##' | xargs -n1 -I{} -- zip "output/{}.zip" buffer/{}
将执行:

zip output/buffer/1.zip buffer/1
zip output/buffer/1.zip buffer/2
zip output/1.zip buffer/1
zip output/2.zip buffer/2
要删除原始文件,我们可以执行如下smth:

mkdir buffer
touch buffer/1 buffer/2
find buffer/ -type f | grep -i "$varname" | sed 's#buffer/##' | xargs -n1 -I{} -- bash -c 'zip "output/{}.zip" buffer/{}; rm "buffer/{}"'
如果要迭代文件并执行更高级的smth,可以使用:


欢迎来到SO。Stack Overflow是一个面向专业和热心程序员的问答网站。我们的目标是在问题中添加一些自己的代码,以显示您自己为解决此问题所做的研究工作。