2017-08-11 66 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

相關問題