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