有几个错误,我们需要减轻,这可以做到只有当我能够找到两个小时之间创建的文件列表。
我的文件命名模式是
App_ErrorFile1401_01_11_YYYYMMDDHHMMSS_1234_123456.csv.gz我需要找到昨天上午9点到11点之间的文件。找到文件列表后,我将通过FTP将这些文件发送到给定的服务器IP。
FTP部分是我们可以很容易做的事情,但我不能找到任何模式,我可以用它来搜索2个小时的文件,并选择他们的FTP。我对使用正则表达式模式的grep没有太多的概念,在网上浏览了一个多小时后,我还没有弄清楚如何构建我的语句。我可以使用find/grep。我在RHEL上。
我们将非常感谢您的帮助。
发布于 2019-07-26 14:31:08
如果可以使用bash,您可以尝试以下代码片段:
#!/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 您必须从文件所在的目录启动它。
https://stackoverflow.com/questions/57213093
复制相似问题