排除包含特定字符串的文件名,正则表达式

时间:2017-06-29 09:13:45

标签: regex bash

这里已经看到了一些负面的回顾答案,出于某些原因我无法使用ls -l。

假设我有三个文件:

sample_one.zip
sample_two.zip
sample_three.zip

我想要的只是ls -l(正则表达式).zip并排除包含一个和两个的文件名。  试过

   ls -l '*(?!one|two).zip' 

但没有运气!

2 个答案:

答案 0 :(得分:1)

如果你可以使用find命令,你可以:

find -name "*.zip" . ! -regex ".*\(\one\|\two\).zip"

然后,您可以使用-exec来操作副本。

答案 1 :(得分:0)

尝试使用rsync,如果这是一个选项

rsync -av --exclude '*one.zip' --exclude '*two.zip' /from /to