regex - 带有正则表达式的 zip 文件夹
问题描述
有以点和随机字符串结尾的文件夹我只需要压缩那些在点后有两个字母的文件夹
文件夹的示例列表是:
`ls`
1113.qy 213cqecqe.cm ADss.BS ADss.QQ ADss.po a123.qqq aedrvrvr.aa aefqe.11 ghtyeu.nn qevaevbae ghtyeu.yg ADss.popoqoQWE ADSD.QQ ADss.as
adad.qqq aedrvrvr.cm asdu.wc
下面的 grep cmd 完全符合我的要求
`ls -a | grep -E '\.[A-Za-z]{2}$'`
.asdas.bC 1113.qy 213cqecqe.cm ADSD.QQ ADss.Cc ADss.QQ ADss.as ADss.po aedrvrvr.aa aedrvrvr.cm asdu.wc ghtyeu.nn ghtyeu.yg
在压缩此类文件夹时,我在 OSX 终端上出现错误,尝试了多个选项但得到相同的错误“名称不匹配”
zip -r ~/Desktop/33.zip ~/test124/.[A-Za-z{2}$]*
zip -r ~/Desktop/33.zip ~/test124/'\.[A-Za-z{2}$]*'
zip -r ~/Desktop/33.zip ~/test124/'\.[A-Za-z]{2}$*'
zip -r ~/Desktop/33.zip ~/test124/".[A-Za-z{2}]$*"
zip -r ~/Desktop/33.zip ~/test124/".[A-Za-z{2}]$"
其他一些 cmd,我尝试压缩所有文件夹,例如
zip -r ~/Desktop/33.zip ~/test124/*.[A-Za-z{2}$]*
我错过了什么吗,提前谢谢你
zip -r ~/Desktop/33.zip ~/test124/.[A-Za-z{2}$]*
zip -r ~/Desktop/33.zip ~/test124/'\.[A-Za-z{2}$]*'
zip -r ~/Desktop/33.zip ~/test124/'\.[A-Za-z]{2}$*'
zip -r ~/Desktop/33.zip ~/test124/".[A-Za-z{2}]$*"
zip -r ~/Desktop/33.zip ~/test124/".[A-Za-z{2}]$"
其他一些 cmd,我试过压缩所有文件夹,比如
zip -r ~/Desktop/33.zip ~/test124/*.[A-Za-z{2}$]*
我希望压缩的文件夹具有 . 和两个字符
1113.qy 213cqecqe.cm ADSD.QQ ADss.BS ADss.Cc ADss.QQ ADss.as ADss.po aedrvrvr.aa aedrvrvr.cm asdu.wc ghtyeu.nn ghtyeu.yg
解决方案
zip
命令不识别regex
。即使是这样,您的语法也会在 shell 中扩展文件名,而不是 zip。
以下将起作用:
zip -r ~/Desktop/33.zip ~/test24/*.[A-Za-z][A-Za-z]
为了使用regex
,您还可以这样说:
find ~/test24 -type f -regextype posix-egrep -regex ".+\.[A-Za-z]{2}" -print0 | xargs -0 zip -r ~/Desktop/33.zip
希望这可以帮助。
推荐阅读
- javascript - 从 module.config 调用 stateProvider 解析中的 Service 函数
- javascript - 使用 mobx observe 检测嵌套对象的变化
- php - __SoapClient - SOAP-ERROR: Encoding: object has no 'auth' property
- javascript - 无法更改 Select2 中某个选项的字体大小
- karate - 如何仅为更改的微服务执行空手道脚本
- java - Springboot:分为STARTER与CORE的依赖关系职责之间的区别
- python - 在 Python 中在一组元组上分配值
- mysql - 从 sql 中的 2 个表中删除,该表在其他表中具有外键
- xamarin.android - 以编程方式滚动列表视图
- google-compute-engine - GCloud 导入 vmdk 磁盘总是失败