Подтвердить что ты не робот

Перебирая алфавиты в Bash

Я хочу mv всех файлов, начинающихся с 'x' в каталог 'x'; что-то вроде:

mv path1/x*.ext path2/x

и сделайте это для всех букв алфавита a,..., z

Как я могу написать bash script, который заставляет "x" перемещаться по алфавиту?

4b9b3361

Ответ 1

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

Ответ 2

Это должно помочь вам:

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

Ответ 3

здесь, как создать испанский алфавит, используя вложенное расширение скобки

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

Аналогично может быть сделано для французского алфавита или немецкого алфавита.

Ответ 4

Используя 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}*

Ответ 5

С прописными буквами

for letter in {{a..z},{A..Z}}; do
  echo $letter
done