2016-11-04 157 views
0

我有這樣的文件名的文件文本:如何創建基於在一個文本文件的目錄和移動文件到新創建的目錄

file1.txt 
PCSTW.ABO.8.inv.term.2.Combined.inweb3.Pancreas_inweb3.txt.0.solution 
PCSTW.ABO.8.inv.term.3.Combined.inweb3.Pancreas_inweb3.txt.0.solution 
PCSTW.ABO.8.inv.term.2.Combined.inweb3.Arteria_inweb3.txt.0.solution 
PCSTW.ABO.8.inv.term.3.Combined.inweb3.Arteria_inweb3.txt.0.solution 
PCSTW.ABO.8.inv.term.2.Combined.inweb3.Adipose_inweb3.txt.0.solution 

基於獨特的創建我想新目錄Combined.inweb3_inweb3.txt.0.solution之前的名稱,然後將文件與唯一的名稱爲新的目錄,這裏是從我想要實現

# Create directories 
mkdir Pancreas 
mkdir Arteria 
mkdir Adipose 

# Move files to new directories 
mv *.Pancreas_*.solution Pancreas/ 
mv *.Arteria_*.solution Arteria/ 
mv *.Adipose_*.solution Adipose/ 

一個描述性的想法到目前爲止,我使用grepmv,但我有很多的文件,並採取了一些時間

+0

聽起來像是不錯的一個問題爲http://superuser.com/。 – harper

回答

2

bash這樣的腳本應該這樣做:

#!/bin/bash 
while read f; do 
    # Get the directory name and make it 
    d=$(sed -e 's/_inweb3.*//' -e 's/.*inweb3.//' <<< "$f") 
    echo Directory: $d 
    mkdir -p "$d" 
    echo cp "$f" "$d" 
done < file1 

樣本輸出

Directory: Pancreas 
cp PCSTW.ABO.8.inv.term.2.Combined.inweb3.Pancreas_inweb3.txt.0.solution Pancreas 
Directory: Pancreas 
cp PCSTW.ABO.8.inv.term.3.Combined.inweb3.Pancreas_inweb3.txt.0.solution Pancreas 
Directory: Arteria 
cp PCSTW.ABO.8.inv.term.2.Combined.inweb3.Arteria_inweb3.txt.0.solution Arteria 
Directory: Arteria 
cp PCSTW.ABO.8.inv.term.3.Combined.inweb3.Arteria_inweb3.txt.0.solution Arteria 
Directory: Adipose 
cp PCSTW.ABO.8.inv.term.2.Combined.inweb3.Adipose_inweb3.txt.0.solution Adipose 
+0

優秀 - 祝您的項目好運! –

相關問題