【问题标题】:How to capture file names and check for date part in the filename in Unix code?如何在 Unix 代码中捕获文件名并检查文件名中的日期部分?
【发布时间】:2013-05-20 21:28:13
【问题描述】:

我是 linux 的新手,我有一个要求,我需要捕获文件名,检查文件名中的日期,并且只有在所有文件名具有相同日期的情况下才继续从所有文件中加载数据在他们中。可以说,我的文件很少

X_US_20130420.CSV
X_CA_20130420.CSV
X_PH_20130420.CSV
X_NS_20130420.CSV

我需要检查所有文件是否具有相同的日期(此处为 20130420),然后在我的下一份工作中使用该日期作为参数。请帮忙。

【问题讨论】:

    标签: linux unix filenames


    【解决方案1】:

    有很多方法可以解决这个问题,但一种方法是遍历所有文件,解析出日期,看看是否有任何日期与其他日期不匹配。我不会剥夺你弄清楚大部分工作的特权,但是日期解析可以这样完成:

    如果你有 bash:

    file=X_US_20130420.CSV
    myDate=${file##*([A-Z_])}
    myDate=${myDate%.CSV}
    
    # myDate is now 20130420
    

    如果你没有 bash:

    file=X_US_20130420.CSV
    myDate="$(echo $file | sed 's:^[A-Z_]\{1,\}\([0-9]\{8\}\).CSV/\1/')"
    
    # myDate is now 20130420
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-15
      • 1970-01-01
      • 1970-01-01
      • 2018-09-22
      • 2016-01-06
      • 1970-01-01
      相关资源
      最近更新 更多