
N
Angenommen, ich möchte Kopien von erstellen a.txt
und diese mit den Nummern a1.txt
, a2.txt
, a3.txt
, usw. versehen ...
Wie würde ich so etwas prägnant machen?
Antwort1
cp
selbst 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 cp
sind etwas ineffizient, da Sie nicht immer dieselbe Datei lesen müssen, N
um Kopien zu erstellen N
. tee
Stattdessen 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
.