正则表达式 - linux shell中如何实现对多个关键字段的排除?

查看:115
本文介绍了正则表达式 - linux shell中如何实现对多个关键字段的排除?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

当前目录如下:
tanbofandeiMac:TTGr 0101-0200 tanbofan$ ls -l .zip | awk '{print $NF}'
TTGr0101.1.zip
TTGr0101.1.zip.aria2
TTGr0101.zip
TTGr0101.zip.aria2
TTGr0108.zip
TTGr0118.1.zip
TTGr0118.1.zip.aria2
TTGr0118.zip
TTGr0118.zip.aria2
TTGr0121.zip
TTGr0128.1.zip
TTGr0128.1.zip.aria2
TTGr0128.zip
TTGr0128.zip.aria2
TTGr0130.zip
TTGr0131.zip
TTGr0135.zip
TTGr0137.zip
TTGr0139.zip
TTGr0139.zip.aria2
TTGr0142.zip
TTGr0143.zip
TTGr0143.zip.aria2
TTGr0151.zip
TTGr0154.zip
TTGr0159.zip
TTGr0166.zip
TTGr0167.zip
TTGr0167.zip.aria2
TTGr0170.zip
TTGr0173.zip
TTGr0176.zip
TTGr0177.zip
TTGr0177.zip.aria2
TTGr0178.zip
TTGr0178.zip.aria2
TTGr0183.zip
TTGr0183.zip.aria2
TTGr0186.zip

想写一个脚本实现对已下载完成的文件自动解压缩,其中以.aria2结尾的文件为未完成文件,我能够用ls *.aria2 | cut -d'.' -f1来将这些文件名取出,但是没办法用grep -v去排除,因为grep貌似不支持多个关键字的排除。请各位帮忙看看有什么办法能够排除掉.aria2结尾的文件(包含FILENAME.zip和FILENAME.aria2)。

解决方案

既然已经取出文件名了,那就直接排除该文件名啊。

这样:ls *.zip | grep -vf <(ls *.aria2 | cut -d'.' -f1)

这篇关于正则表达式 - linux shell中如何实现对多个关键字段的排除?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆