2017-08-11 8 views
0

毎日毎時ファイルを受信する必要があります。だから1日で24のファイルを受け取ります。これらのファイルを入力とするピグ動作があります。現在の午前2時から翌日2時までのファイルのみが豚の行動への入力になります。この仕事は将来も自動化されるべきです。残りのファイルは、別のピグアクションに入力されます。午前2時から翌日にかけての午前2時から午後2時までの午後の豚への入力

ファイル形式:abcdef_20170810-020000.tar.gz(02は2AMファイルを表します)時間は24時間形式です。

だから、豚のアクションの入力は

をabcdef_20170811-020000.tar.gzするabcdef_20170810-020000.tar.gzからのファイルである必要があり、これが達成できることをシェルスクリプトのいずれかの方法はありますか?豚の行動は、怠惰なワークフローの一部です。

私は多くの正規表現を試しましたが、ファイル形式はあまり独特ではないので、これを解読することはできません。

ご了承ください。あなたがタグを持っているので

+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

関連する問題