Ich muss Dateien von File1, File2, ... zu File99 aufrufen.Ich kann keine Dummy-Dateien erstellen
habe ich versucht, die erfolglos funktionierte nicht
cat test > {File1 .. File99}
Der Befehl ohne das Wort Datei folgen.
Ich muss Dateien von File1, File2, ... zu File99 aufrufen.Ich kann keine Dummy-Dateien erstellen
habe ich versucht, die erfolglos funktionierte nicht
cat test > {File1 .. File99}
Der Befehl ohne das Wort Datei folgen.
Nur ein Befehl:
touch File{1..99}
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
Ich habe Ihren Befehl als Einzeiler erfolglos versucht: $ für die Ausgabe in Datei {1..99}; machen; Katzentest> $ output; done –
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 –
Es funktioniert mit $ für die Ausgabe in Datei {1..99}; do cat test> $ output; done –
$ for i in {1..100}; do touch "File$i"; done
Wenn Sie eine nicht Looping Version bevorzugen, dann können Sie T
cat test | tee File{1..99} > /dev/null
verwenden
Ihr Code funktioniert auch ohne/dev/null. Warum benutzt du es? –
@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
'tee' würde sonst die Ausgabe auf das Terminal sowie die Dateien kopieren. –
Mit zsh (mit seiner mult_ios) können Sie :)
% zsh -c 'print test > file{1..3}'
% head file*
==> file1 <==
test
==> file2 <==
test
==> file3 <==
test
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.
Prägnant. Ich vermutete, dass Sie den Inhalt der Datei "test" in den neuen Dateien WOLLTE. –
Sie können {01..99} verwenden, um File01, File02 usw. zu haben. –