2017-09-05 113 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

太棒了!謝謝!!! –