2017-09-05 114 views
2

我试图与格式 submission.YYMMDDS.csv ......哪里算文件的出现与今天的日期在目录:计数与今天的日期文件

YY =当前年度,不包括世纪(如17对于2017年)

MM =当前的月份数(如07日)

DD =当前日一个月内(该月的21天数如21)

S =文件的序列号在YYMMDD内,从0开始(例如, 1,如果该文件是)为YYMMDD的这个价值创造的第二个文件

这个工程:

ls *.csv | grep -oc "submission.$(date +%y%m%d)" 

但我真的很想纳入“S.csv”在grep的(S是一个通配符序列号)

这不起作用:

ls *.csv | grep -oc "submission.$(date +%y%m%d)" *.csv 

有什么建议?

+0

为什么不只是'grep -oc“提交。$(date +%y%m%d)”* .csv'? – RomanPerekhrest

回答

0

如果你的shell是bash,这个目录和日期给出:

$ ls 
submission.1709043.csv submission.1709052.csv submission.1709053.csv 
$ date 
Tue Sep 5 17:26:14 CDT 2017 

你应该做的:

$ shopt -s nullglob 
$ files=(submission.$(date +%y%m%d)[0-9]*.csv) 
$ echo "${#files[@]}" 
2 
$ shopt -u nullglob 

的是了nullglob所以你不要,如果目录中获取计数1是空的。即使对于包含换行符或任何其他空格的文件名也是如此。

+1

太棒了!谢谢!!! –