我们要求每天接收每小时文件。所以在一天内我们会收到24个文件。我们有一个pig动作,这些文件将作为输入。现在只有当天凌晨2点到次日凌晨2点的文件应该是猪行动的输入。这项工作也应该在未来实现自动化。其余文件将输入另一个猪行动。
文件格式:abcdef_20170810-020000.tar.gz(02表示2AM文件)小时数为24小时格式。
所以猪行动的输入应该是abcdef_20170810-020000.tar.gz到abcdef_20170811-020000.tar.gz的文件
shell脚本中是否有任何方法可以实现这一点?猪行动是oozie工作流程的一部分。
我试过许多正则表达式,但由于文件格式不是很独特,我无法解决这个问题。
感谢任何指导。
答案 0 :(得分:2)
由于你有一个shell标签,
怎么样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[@]}"