我试图在unix中对一组日志文件执行操作。操作复制。
假设我想将上周的日志文件(1月25日至31日)从当前目录复制到另一个目录,这些文件的名称如下:
log-20150125, log-20150126, ..., log-20150131我在bash尝试了以下几种方法:
cp (log-201501)|2[5-9]|3[0-1]*.gz /home/user/bin/Temp并得到一个错误,上面写着“语法错误接近意外令牌日志-201501”。
我想我做错了什么。捕获两个日期范围的表达式是什么?
发布于 2015-02-05 19:08:55
Bash有很多语法,所以您不能只在willy-nilly周围乱扔括号和管道。
shopt -s extglob
cp log-201501@(2[6-9]|3[0-1])*.gz /home/user/bin/Temp请参阅https://www.gnu.org/software/bash/manual/bashref.html#Pattern-Matching
如果太难理解的话,就分头行动
cp log-2015012[6-9]*.gz log-2015013[0-1]*.gz /home/user/bin/Temp或者大括号扩展的可读性很好
cp log-201501{26,27,28,29,30,31}*.gz /home/user/bin/Temphttps://stackoverflow.com/questions/28350992
复制相似问题