Welche schnellen Möglichkeiten gibt es, N Kopien einer bestimmten Datei zu erstellen?

Welche schnellen Möglichkeiten gibt es, N Kopien einer bestimmten Datei zu erstellen?

NAngenommen, ich möchte Kopien von erstellen a.txtund diese mit den Nummern a1.txt, a2.txt, a3.txt, usw. versehen ...

Wie würde ich so etwas prägnant machen?

Antwort1

cpselbst kann jeweils nur eine Kopie (einer einzelnen Datei) erstellen, aber mit einer schnellen Schleife ist das nicht allzu schwierig:

for i in {1..10}; do cp a.txt a$i.txt; done

Antwort2

Angenommen, Sie haben Ihren N-Wert in einer Bash-Variable:

for i in `seq 1 $N`; do cp a.txt a$i.txt; done

oder

for ((i=1;i<=$N;i++)); do cp a.txt a$i.txt; done

oder mit der Schleife, die in Kevins Antwort gezeigt wird.

Antwort3

Lösungen mit cpsind etwas ineffizient, da Sie nicht immer dieselbe Datei lesen müssen, Num Kopien zu erstellen N. teeStattdessen können Sie Folgendes verwenden:

cat a.txt | ( for i in `seq 1 $N`; do echo a"$i".txt; done | xargs tee )

Antwort4

Wenn Sie etwas Ausgefalleneres möchten, können Sie beispielsweise Folgendes tun: for t in $(seq --format="funky-%03.0f-numbered.txt" 25 3 40); do cp orig $t; done.

verwandte Informationen