Я хочу, чтобы mvвсе файлы, начинающиеся с «x», были помещены в каталог «x»; что-то вроде:
mv path1/x*.ext path2/x
и проделаем это для всех букв алфавита a, ..., z
Как я могу написать сценарий bash, который заставляет «x» проходить по алфавиту?
Я хочу, чтобы mvвсе файлы, начинающиеся с «x», были помещены в каталог «x»; что-то вроде:
mv path1/x*.ext path2/x
и проделаем это для всех букв алфавита a, ..., z
Как я могу написать сценарий bash, который заставляет «x» проходить по алфавиту?
Ответы:
for x in {a..z}
do
echo "$x"
mkdir -p path2/${x}
mv path1/${x}*.ext path2/${x}
done
"$x"достаточно, и это лучший способ выделить его.
вот как сгенерировать испанский алфавит, используя расширение вложенных скобок
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
То же самое можно сделать для французского или немецкого алфавита.
Также в верхнем регистре
for letter in {{a..z},{A..Z}}; do
echo $letter
done
Этот вопрос и ответы частично помогли мне решить мою проблему.
Мне нужно было навести лупу над частью алфавита в bash.
Хотя расширение строго текстовое
Я нашел решение и сделал его еще проще:
START=A
STOP=D
for letter in $(eval echo {$START..$STOP}); do
echo $letter
done
Что приводит к:
A
B
C
D
Надеюсь, это поможет кому-то, кто ищет ту же проблему, которую я должен был решить, и тоже оказывается здесь.