gpt4 book ai didi

linux - scp shell 脚本中 2 个日期之间模式 filename_date 的所有日志文件

转载 作者:太空宇宙 更新时间:2023-11-04 12:44:16 25 4
gpt4 key购买 nike

我的日志文件的格式是 upd_yyyymmdd_slr.stats。例如,我想在 2 个日期之间将所有文件从服务器复制到我的本地服务器。

我希望所有文件在日志文件中的日期都为 2015122820160103 意味着我想从一组许多文件中复制以下文件。

upd_20151228_slr.stats
upd_20151229_slr.stats
upd_20151230_slr.stats
upd_20151231_slr.stats
upd_20160101_slr.stats
upd_20160102_slr.stats
upd_20160103_slr.stats

我正在使用下面的命令,但它不起作用

 scp server:/reports/logs/upd_20[15-16][12-01][29-03]*slr* ./log_files

请找到我在 Linux 和 shell 脚本中能做的最好的方法

最佳答案

检查这个脚本:

#!/bin/bash

for i in `ls upd_*_slr.stats`; do
# First strip off prefix and suffix strings.
s=`echo $i | sed 's/upd_//g' | sed 's/_slr.stats//g'`
if [[ $s -ge 20151230 && $s -le 20160102 ]]; then # Modify dates as needed
echo $i
cp $i /path/to/dest/dir
fi
done

编辑:

如果是远程服务器,可以试试这个:

#!/bin/bash

for i in `ssh username@remoteaddress ls /path/to/dir/upd_*_slr.stats`; do
i=${i##*/}
# First strip off extra strings leaving only date.
s=`echo $i | sed 's/upd_//g' | sed 's/_slr.stats//g'`
if [[ $s -ge 20151230 && $s -le 20160102 ]]; then # Modify dates as needed
echo $i
scp username@remoteaddress:/path/to/dir/$i /path/to/dest/dir
fi
done

关于linux - scp shell 脚本中 2 个日期之间模式 filename_date 的所有日志文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39248577/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com