2013-09-26 62 views
2

我正在嘗試將文件集合從一個目錄移動到另一個目錄。從部分名稱的.txt列表中移動文件

我有我要移動的文件(每行一個)的部分名稱.txt的名單。

例子:

- >文件名: 「00-52200308419 -20100101-201-G-E92F9BA0A0C932C331273FCD845719813F0B617-1-GTOGR-FDS.txt」

- >我從文件名中有我的.txt文件: E92F9BA0A0C932C331273FCD845719813F0B617

它似乎很簡單,我必須: 1-查找文件巫名稱包含存儲在我的.txt文件中的字符串 2-然後將其移動到該目錄

但是.....我做錯了(?也許展開階)....

這是我正在努力:

for PARTNAME in `cat LIST.TXT`; do mv *"$PARTNAME"* /NEWDIR ; done 

通配符*(點兒後或不工作之前,部分文件名)...... it's被認爲是文件名的一部分,instaed

任何幫助將apreciated!

回答

3

簡單:

while read -r PART; do 
    mv *"$PART"*.txt /NEWDIR 
done < list.txt 

而且雖然我不建議分詞,讓你的代碼工作的方式只是爲了妥善安置您的$符號與參數一起:

for PARTNAME in `cat LIST.TXT`; do mv *"$PARTNAME"* /NEWDIR ; done 
+0

這工作!謝謝 !!!順便說一句,你知道爲什麼相同的擴展\ *「$ PART」\ *。txt不適用於CAT嗎? – silvio

+0

不確定,不應該是'*「PARTNAME」*'?如果你指的是你的原始命令。你使用的完整命令是什麼? – konsolebox

相關問題