2011-09-04 3 views
53

mv「x」で始まるすべてのファイルをディレクトリ 'x'に追加します。以下のようなもの:Bashでアルファベットをルーピングする

mv path1/x*.ext path2/x 

とすべてのアルファベット文字のためにそれを行うには、...、zの

は、どのように私は「x」は、アルファベットをループしますbashスクリプトを書くことができますか?

答えて

86
for x in {a..z} 
do 
    echo "$x" 
    mkdir -p path2/${x} 
    mv path1/${x}*.ext path2/${x} 
done 
28

これは、あなたが始める必要があります。

for letter in {a..z} ; do 
    echo $letter 
done 
11

はここ

for l in {{a..n},ñ,{o..z}}; do echo $l ; done | nl 
1 a 
... 
14 n 
15 ñ 
16 o 
... 
27 z 

それともたい場合は、単に

echo -e {{a..n},ñ,{o..z}}"\n" | nl 

ネストされたブレース展開を使ってスペイン語のアルファベットを生成する方法を説明しますを生成する同様のアルファベット

echo -e {{a..c},ch,{d..l},ll,{m,n},ñ,{o..z}}"\n" | nl 

スペインの29文字はフランス語アルファベットやドイツ語のアルファベットのために行うことができます。 rename使用

2

:あなたはストリップオフにつながる[-z]はファイル名から文字を使用する場合は

mkdir -p path2/{a..z} 
rename 's|path1/([a-z])(.*)|path2/$1/$1$2' path1/{a..z}* 

を、更新perlexprは次のようになります。

rename 's|path1/([a-z])(.*)|path2/$1/$2' path1/{a..z}*