我正在尝试使用格式计算具有今天日期的文件的出现次数 submission.YYMMDDS.csv ...其中:
YY =当前年份,不包括世纪(例如2017年为17)
MM =当前月份数(例如7月07日)
DD =月内的当前日期数(例如,该月的第21天为21日)
S = YYMMDD中的文件序列号,从0开始(例如,如果文件是为此YYMMDD值创建的第二个文件,则为1)
这有效:
ls *.csv | grep -oc "submission.$( date +%y%m%d)"
但我真的想在grep中加入“S.csv”(S是一个通配符序列号)
这不起作用:
ls *.csv | grep -oc "submission.$( date +%y%m%d)" *.csv
有什么建议吗?
答案 0 :(得分: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的计数。这甚至适用于包含换行符或任何其他空格的文件名。