Перебирая алфавиты в Bash Я хочу mv всех файлов, начинающихся с 'x' в каталог 'x'; что-то вроде: mv path1/x*.ext path2/x и сделайте это для всех букв алфавита a,..., z Как я могу написать bash script, который заставляет "x" перемещаться по алфавиту? Ответ 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
Ответ 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}*