#linux #terminal
Как создать 100 файлов с именами a1, a2, a3, …. a100 в терминале? Это вообще можно сделать в одну команду?
Ответы
Ответ 1
наибольшая «сложность» — получить последовательность чисел. дополнить же их буквами и передать программе touch — это просто. стандартом posix, насколько мне известно, каких-либо «бортовых» средств, упрощающих процесс генерации, нет. можно воспользоваться каким-нибудь универсальным языком: с помощью программы awk: $ awk 'BEGIN { for(i=1;i<=5;i++) printf "a%d\n", i }' a1 a2 a3 a4 a5 для создания файлов достаточно передать список программе touch: $ touch $(awk 'BEGIN { for(i=1;i<=5;i++) printf "a%d\n", i }') с помощью программы bc: $ echo 'for (i=1; i<=5; i++) {print "a",i,"\n"}' | bc a1 a2 a3 a4 a5 для создания файлов достаточно передать список программе touch: $ touch $(echo 'for (i=1; i<=5; i++) {print "a",i,"\n"}' | bc) в операционной же системе gnu есть программа seq, как раз упрощающая генерацию: $ seq -f 'a%g' 1 5 a1 a2 a3 a4 a5 для создания файлов достаточно передать список программе touch: $ touch $(seq -f 'a%g' 1 5) ну и современные «навороченные» оболочки типа bash/zsh понимают конструкцию {1..5}: $ echo {1..5} 1 2 3 4 5 т.е. можно создать файлы опять-таки передав список программе touch: $ touch a{1..5}
Комментариев нет:
Отправить комментарий