【问题标题】:Counting files with Today's date用今天的日期计算文件
【发布时间】:2017-09-05 19:28:03
【问题描述】:

我正在尝试使用格式计算目录中具有今天日期的文件的出现次数 提交.YYMMDDS.csv …哪里:

YY = 当前年份,不包括世纪(例如 2017 年为 17)

MM = 当前月份编号(例如 07 表示 7 月)

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

有什么建议吗?

【问题讨论】:

  • 为什么不直接grep -oc "submission.$( date +%y%m%d)" *.csv

标签: unix grep


【解决方案1】:

如果你的 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 的计数。这甚至适用于包含换行符或任何其他空格的文件名。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-13
    • 2012-01-29
    • 2013-11-29
    • 2023-02-22
    • 2021-07-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多