使用Regex的Linux Commad Line Zip

The*_*lis 2 regex linux zip command-line

我有成千上万个名为1.jpg,2.jpg,3.jpg等的jpg文件。我需要压缩它们的范围,我以为我可以使用正则表达式来做到这一点,但是到目前为止还没有任何运气。

这是命令

 zip images.zip '[66895-105515]'.jpg
Run Code Online (Sandbox Code Playgroud)

有人有什么想法吗?

Den*_*ton 6

我非常确定无法将这样的数字范围与正则表达式(数字范围,是的,但不是整个多位数字)进行匹配,因为正则表达式在字符级上起作用。但是,您可以使用“ seq”命令生成文件列表,并使用“ xargs”将它们传递给“ zip”:

seq --format %g.jpg 66895 105515 | xargs zip images.zip
Run Code Online (Sandbox Code Playgroud)

我在Linux下用一堆虚拟文件测试了该命令,并且运行良好。


anu*_*ava 5

与 ls 和 bash range ( {m..n}) 运算符结合使用,如下所示:

ls {66895..105515}".jpg" 2>/dev/null | zip jpegs -@
Run Code Online (Sandbox Code Playgroud)