2009-03-11 9 views

Antwort

5

Nur ein Befehl:

touch File{1..99} 
+0

Prägnant. Ich vermutete, dass Sie den Inhalt der Datei "test" in den neuen Dateien WOLLTE. –

+1

Sie können {01..99} verwenden, um File01, File02 usw. zu haben. –

4

Dies hängt von der Shell ab, die Sie verwenden. Ich nehme an, Sie verwenden Bash.

Gemäß http://www.gnu.org/software/bash/manual/bashref.html#Brace-Expansion erweitert Bash Ziffern und einzelne Zeichen. So sollte Ihre Klammer Ausdruck sein:

File{1..99} 

Aber ich glaube nicht, das Umleitungsoperator „>“ ausgeben kann, um mehrere Dateien. Möglicherweise müssen Sie eine Schleife verwenden:

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

Oder als Einzeiler:

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

Ich habe Ihren Befehl als Einzeiler erfolglos versucht: $ für die Ausgabe in Datei {1..99}; machen; Katzentest> $ output; done –

+0

Ich denke, Sie haben ein zusätzliches Semikolon. Folgendes funktioniert für mich: für die Ausgabe in Datei {1..99}; do cat test> $ output; done –

+0

Es funktioniert mit $ für die Ausgabe in Datei {1..99}; do cat test> $ output; done –

5
$ for i in {1..100}; do touch "File$i"; done 
4

Wenn Sie eine nicht Looping Version bevorzugen, dann können Sie T

cat test | tee File{1..99} > /dev/null 
verwenden
+0

Ihr Code funktioniert auch ohne/dev/null. Warum benutzt du es? –

+0

@Masi: Meistens mit den anderen Antworten gleichwertig sein. Ein anderer möglicher Grund, obwohl nicht meiner, besteht darin, eine lange Ausgabe zu verhindern, die nicht benötigt wird. – phyrex1an

+0

'tee' würde sonst die Ausgabe auf das Terminal sowie die Dateien kopieren. –

3

Mit zsh (mit seiner mult_ios) können Sie :)

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

==> file2 <== 
test 

==> file3 <== 
test 
1

Wenn Sie die Dateien wollen richtig sortieren (FILE01, file02 ... Datei10, etc.), dies tun:

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

Welche ist das Gleiche wie:

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

Es muss eine Weltraumwette geben ween der Doppelpunkt und der Bindestrich in der Teilstring-Erweiterungsklausel. Sie können die obigen Bereiche mit 1 beginnen, wenn Sie mit "file01" beginnen wollen.

Oder eine viel prägnante Weise führende Nullen zu haben:

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

und mit dieser einem phyrex1an der Technik zu verwenden:

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

Dies ist eine zusätzliche Datei „file00“ machen. Sie können auch "{2..3} {0..9}" für "file20" bis "file39" verwenden, aber das Ändern der Einerstelle (des zweiten Bereichs) würde dazu führen, dass Teile der Sequenz übersprungen werden.

Verwandte Themen