从凌晨2点到第二天凌晨2点的每小时文件作为Pig的输入

时间:2017-08-11 10:49:15

标签: regex shell apache-pig oozie

我们要求每天接收每小时文件。所以在一天内我们会收到24个文件。我们有一个pig动作,这些文件将作为输入。现在只有当天凌晨2点到次日凌晨2点的文件应该是猪行动的输入。这项工作也应该在未来实现自动化。其余文件将输入另一个猪行动。

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

所以猪行动的输入应该是abcdef_20170810-020000.tar.gz到abcdef_20170811-020000.tar.gz的文件

shell脚本中是否有任何方法可以实现这一点?猪行动是oozie工作流程的一部分。

我试过许多正则表达式,但由于文件格式不是很独特,我无法解决这个问题。

感谢任何指导。

1 个答案:

答案 0 :(得分: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[@]}"