【问题标题】:list files from directory between given hours using linux command使用linux命令列出给定小时内目录中的文件
【发布时间】:2019-12-04 09:19:42
【问题描述】:

我们需要缓解的错误很少,只有当我能够找到在 2 小时内创建的文件列表时才能完成。

我的文件命名模式是

App_ErrorFile1401_01_11_YYYYMMDDHHMMSS_1234_123456.csv.gz

我需要查找昨天上午 9 点到 11 点之间的文件。找到文件列表后,我会将这些文件 FTP 到给定的服务器 IP。

FTP 部分是我们可以轻松完成的,但我无法找到任何模式,我只能使用它搜索 2 小时的文件并为 FTP 选择它们。我对带有正则表达式模式的 grep 不太了解,并且在通过网络一个多小时后,我还没有弄清楚如何构建我的语句。 我可以使用查找/grep。我在 RHEL 上。

我们将不胜感激。

【问题讨论】:

  • 您是否正在寻找具有命名模式的文件或在指定时间段内创建/修改/访问/等的文件?

标签: linux awk sed grep find


【解决方案1】:

如果可以使用bash,可以试试下面的代码sn-p:

#!/bin/bash

# define timearea
yesterday=$(date --date="yesterday" +"%Y%m%d")
start="${yesterday}090000"
stop="${yesterday}110000"

find . -name "App_ErrorFile*.csv.gz" | \
while read -r file; do
    IFS=_ read -r -a arr <<< "$file"
    timestamp="${arr[4]}"
    if [[ $timestamp -ge $start && $timestamp -le $stop ]]; then
       echo "$file"
    fi   
done 

您必须从文件所在的目录启动它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-20
    • 2022-06-16
    • 1970-01-01
    相关资源
    最近更新 更多