Ответ 1
for x in {a..z}
do
echo "$x"
mkdir -p path2/${x}
mv path1/${x}*.ext path2/${x}
done
Я хочу mv
всех файлов, начинающихся с 'x' в каталог 'x'; что-то вроде:
mv path1/x*.ext path2/x
и сделайте это для всех букв алфавита a,..., z
Как я могу написать bash script, который заставляет "x" перемещаться по алфавиту?
for x in {a..z}
do
echo "$x"
mkdir -p path2/${x}
mv path1/${x}*.ext path2/${x}
done
Это должно помочь вам:
for letter in {a..z} ; do
echo $letter
done
здесь, как создать испанский алфавит, используя вложенное расширение скобки
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
Если вы хотите сгенерировать устаревшие 29 символов Испанский алфавит
echo -e {{a..c},ch,{d..l},ll,{m,n},ñ,{o..z}}"\n" | nl
Аналогично может быть сделано для французского алфавита или немецкого алфавита.
Используя rename
:
mkdir -p path2/{a..z}
rename 's|path1/([a-z])(.*)|path2/$1/$1$2' path1/{a..z}*
Если вы хотите вычеркнуть ведущий символ [a-z] из имени файла, обновленный perlexpr будет выглядеть следующим образом:
rename 's|path1/([a-z])(.*)|path2/$1/$2' path1/{a..z}*
С прописными буквами
for letter in {{a..z},{A..Z}}; do
echo $letter
done