2015-02-04 5 views
2

Мне нужно создать 8 txt-файлов с текстом имени [x], где X является числом от 1 до 8. Есть ли какая-нибудь простая конструкция для этого? Я думал использовать итерацию. Простой метод, как:Создайте несколько файлов с одинаковыми именами в linux

touch text1.txt text2.txt text3.txt text4.txt text5.txt text6.txt text7.txt text8.txt 

не является приемлемым.

+4

В Bash, используя [расширение скобки] (http://www.gnu.org/software/bash/manual/bashref.html#Brace-Expansion): 'touch text {1..8} .txt' –

+1

@gniourf_gniourf - вот ответ, поэтому не должен быть комментарий! –

ответ

2

Вы можете сделать это без петли с помощью brace expansion в имени файла:

touch text{1..8}.txt 

Смотрите в Баш человека страниц brace expansion. В отличие от расширения подстановочных знаков, имена файлов не должны существовать для расширения брекетов.

0

Базовая конструкция цикла с повторением итерации 1-8 в качестве переменной «i», которую вы используете как часть имени файла, созданного прикосновением.

for i in `echo {1..8}` 
do touch text$i.txt 
done 

Как один лайнер:

for i in `echo {1..8}`; do touch text$i.txt; done 

Но, я думаю, что вы только что ответ в более простом формате в комментариях.

+4

Как вы уже сказали, вам не нужно использовать цикл в любом случае, но если вы это сделаете, вам, конечно же, не нужно будет использовать замену процессов. 'для i в {1..8}' было бы достаточно. –

+0

Полезно знать, спасибо! –

Смежные вопросы