Невозможно создать диапазон фиктивных файлов - PullRequest
2 голосов
/ 11 марта 2009

Мне нужно сделать файлы, вызываемые из File1, File2, ... в File99.

Я безуспешно попробовал следующее

cat test > {File1 .. File99}

Команда без слова Файл не сработала.

Ответы [ 6 ]

5 голосов
/ 12 марта 2009

Всего одна команда:

touch File{1..99}
5 голосов
/ 11 марта 2009
$ for i in {1..100}; do touch "File$i"; done 
4 голосов
/ 11 марта 2009

Если вы предпочитаете нецикличную версию, вы можете использовать tee

cat test | tee File{1..99} > /dev/null
4 голосов
/ 11 марта 2009

Это будет зависеть от используемой вами оболочки. Я предполагаю, что вы используете Bash.

Согласно http://www.gnu.org/software/bash/manual/bashref.html#Brace-Expansion, Bash будет расширять цифры и одиночные символы. Таким образом, ваше выражение скобки должно быть:

File{1..99}

Но я не думаю, что оператор перенаправления ">" может выводить несколько файлов. Возможно, вам придется использовать цикл:

for output in File{1..99}
do
    cat test > $output
done

Или как однострочник:

for output in File{1..99}; do cat test > $output; done
3 голосов
/ 11 марта 2009

С zsh mult_ios ) вы можете:)

% zsh -c 'print test > file{1..3}' 
% head file*                      
==> file1 <==
test

==> file2 <==
test

==> file3 <==
test
1 голос
/ 21 апреля 2009

Если вы хотите, чтобы файлы сортировались правильно (file01, file02 ... file10 и т. Д.), Сделайте следующее:

for i in {0..10}; do i="0"$i; touch file${i: -2}; done

Что совпадает с:

for i in {0..10}
do
    i="0"$i
    touch file${i: -2} # or cat file > file${i: -2}
done

Между двоеточием и тире в предложении расширения подстроки должен быть пробел. Вы можете начать вышеуказанные диапазоны с 1, если хотите начать с «file01».

Или, более краткий способ получить ведущие нули:

touch file{0..9}{0..9}

и использовать технику phyrex1an с этим:

cat test | tee File{0..9}{0..9} > /dev/null

Это делает один дополнительный файл "file00". Вы также можете сделать «{2..3} {0..9}» для «file20» - «file39», но изменение цифры в единицу (второй диапазон) приведет к пропуску частей последовательности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...