2016-11-04 5 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前の名前、および新しいディレクトリにユニークな名前のファイルを移動し、ここで私はこれまでのところ、私はgrepとを使用しています

# 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/ 

を達成するために何をしたいの記述アイデアがあります10しかし、私はたくさんのファイルを持っているし、少し時間がかかる

+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

優秀 - あなたのプロジェクトに幸運を祈る! –

関連する問題