2012-01-23 27 views
2

コピーする必要があるファイルのリストがあります。私は再帰的にドライブを検索し、そのファイル名がリストに存在する場合、それらのファイルを設定された場所にコピーしたい。CSVのファイル名のリストを使用してあるディレクトリから別のディレクトリにファイルをコピーするシェルスクリプト

A/ART-FHKFX1.jpg 
B/BIG-085M.jpg 
B/BIG-085XL.jpg 
L/LL-CJFK.jpg 
N/NRT-56808EA.jpg 
P/PFE-25.10.jpg 
P/PFE-7/60.jpg 
P/PFE-7L.20.jpg 
P/PFE-8.25.jpg 
P/PFE-9.15.jpg 
P/PFE-D11.1.tiff 
P/PFE-D11.1.tiff 
P/PFE-D12.2.tiff 
P/PFE-D12.2.tiff 
+0

CSV形式の外観を教えてください。たぶんいくつかのサンプルデータ。 1行に1つのファイルがありますか?そのファイルが存在する可能性のあるCSV値ディレクトリですか?各行に同じ数のフィールドがありますか? –

+2

私にはCSVのようには見えません。 –

+0

+1はCSVファイルではありません。あなたのサンプルデータの最初の行について、結果のコピーがどのように見えるかを表示するために投稿を編集してください。がんばろう。 – shellter

答えて

2

多くの時間がかかりますfindを使用して、可能な場合はlocateを使用しよう:リストは、テキストファイル/

テキストファイルは次のようになります。

いくつかのマッチがあるとどうなりますか? foo.barを検索し、/ foo.barを持ち、b/foo.barを持っているような場合は、その場合はどうしますか?

#!/bin/bash 

while read path; do 
    cp "$path" "$1" 
done 

そして、このようにそれを呼び出す:

あなたのcsvファイルは、私はそれらのパスが、その場合には、単にこれを行うようにスクリプトが実行された場所から、実際に有効であると仮定します以前に指定されたパスを、含まれているようです:

teh_script /path/to/destination < csv-file.csv 
関連する問題