Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Unix 使用今日&x27;日期_Unix_Grep - Fatal编程技术网

Unix 使用今日&x27;日期

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

我正在尝试在具有以下格式的目录中计算具有今天日期的文件的出现次数 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)"
但是我真的很想在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