2016-07-12 6 views
1

私はこのようなFTPサーバーからデータを取得するためにwgetを実行している:ファイル名から日付を取得し、フォルダにソートしますか?

wget -r -nH -N --no-parent ftp://username:[email protected]/ -P /home/data/ 

ファイルのすべてがこのような形式である:

2016_07_10_bob-randomtext.csv.gz 
2016_07_11_joe-importantinfo.csv.gz 

今のところは、これらのすべてを入れていますファイルを/home/data/に保存します。

私がしたいのは、ファイル名から時刻を取得し、それを日付に基づいて自分のフォルダに入れることです。たとえば:

answers hereオフに基づいて
/home/data/2016_07_10/2016_07_10_bob-randomtext.csv.gz 
/home/data/2016_07_11/2016_07_11_joe-importantinfo.csv.gz 

、ファイル名から日付を取得することが可能です。しかし、私は実際にそれをフォルダに自動的に切り替える方法がわかりません...

ごめんなさい。助けやアドバイスをいただければ幸いです。

+0

あなたが/どちらか/ホーム/データまたは/ tmp /データにダウンロードして、/ホーム/データに移動してOKですYYYY_MM_DD?それはより簡単になります。または、YYYY_MM_DDディレクトリに直接ダウンロードする必要がありますか?がんばろう。 – shellter

+0

これを行う方法を知っていれば、私はすべてのものを1つのフォルダにダウンロードしてから、必要な場所に移動することができます。 – Edward

答えて

1

一つのディレクトリは/ home /ファイルにすべてのファイルのダウンロードを維持

destination=/home/data 
for filename in /home/files/*; do 
    if [[ -f "$filename" ]]; then   # ignore it if it's a directory (not a file) 
     name=$(basename "$filename") 
     datedir=$destination/${name:0:10} # first 10 characters of the filename 
     mkdir -p "$datedir"    # create the directory if it doesn't exist 
     mv "$filename" "$datedir" 
    fi 
done 
+0

ファイルを最初に/ home/files /にダウンロードし、代わりに/ home/data/DATEに移動するように変更できますか? 'mv" $ "filename" "$ date" 'を変更してそのようにする方法がわかりません。 – Edward

+0

回答が更新されました。 –

+0

恐ろしい、助けてくれてありがとう! – Edward

関連する問題