2017-08-11 29 views
0

我们在那里我们每天都收到每小时文件的要求。所以在一天中我们收到24个文件。我们有一个猪的行动,这些文件将作为输入。现在只能从今天凌晨2点到次日凌晨2点的文件应该是输入猪行动。这项工作也应该在未来自动完成。其余的文件将被输入到另一个猪动作。每小时文件到次日凌晨2时输入到猪

文件格式:abcdef_20170810-020000.tar.gz(02表示2AM文件)小时将在24小时的格式。

所以对于猪动作输入应该从abcdef_20170810-020000.tar.gz文件abcdef_20170811-020000.tar.gz

有没有办法在shell脚本,它可以做到这一点?猪行动是oozie工作流的一部分。

我试过很多的正则表达式,但因为文件格式不是很独特,我不能够破解这个下来。

任何指导表示赞赏。

+0

难道你真的想要的凌晨2点文件被昨天和今天都处理? –

+0

没有....这应该是凌晨2点到次日凌晨1点。 – Shash

回答

2

既然你有一个标签,如何

today=$(date "+%Y%m%d") 
yesterday=$(date -d yesterday "+%Y%m%d") 
cd /location/of/daily/files 
files=( 
    abcdef_${today}-0[012]0000.tar.gz 
    abcdef_${yesterday}-0[2-9]0000.tar.gz 
    abcdef_${yesterday}-1[0-9]0000.tar.gz 
    abcdef_${yesterday}-2[0-3]0000.tar.gz 
) 
do_something_with "${files[@]}" 
+0

如果外壳是不恰当的语言,它应该是简单的翻译到您所选择的语言。 –

+0

真棒...它像一个魅力工作!谢谢 – Shash

相关问题