2012-01-23 133 views
2

我有我需要複製的文件列表。如果文件名存在於列表中,我想遞歸搜索驅動器並將這些文件複製到設置的位置。該列表是一個文本文件/Shell腳本使用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格式的樣子嗎?也許一些示例數據。每行是否有一個文件? CSV值目錄是否可能存在該文件?每行中是否有相同數量的字段? –

+2

看起來不像我的CSV。 –

+0

+1不是真正的CSV文件; - >。請編輯您的帖子,以顯示您期望得到的副本看起來像樣本數據的第一行。祝你好運。 – shellter

回答

2

使用find會佔用大量的時間,如有可能,嘗試使用locate

當有幾場比賽會發生什麼?就像搜索foo.bar並且有一個/ foo.bar,還有b/foo.bar那樣你會怎麼做?

您的CSV似乎包括一個路徑,因爲以前我會認爲這些路徑是從腳本運行,其中實際有效所以在這種情況下,只是這樣做:

#!/bin/bash 

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

然後調用它像這樣:

teh_script /path/to/destination < csv-file.csv 
相關問題