Page 1 of 1

Zeilen in Textdatei mit Zufallszahlen ersetzen

Posted: 29. Nov 2010 13:15
by r.b.
Hallo zusammen,

ich habe eine Textdatei und möchte bestimmte Zeilen mit Zufallszahlen ersetzen. Pro zu ersetzende Zeile soll es eine 10stellige Zufallszahl geben.

Mit einer for-Schleife un z.B "echo $RANDOM" komme ich nicht weiter. Hier werden alle zu ersetzenden Zeilen mit nur einer Zufallszahl ersetzt.

Vielen Dank für Anregungen und Unterstützung im Voraus,
R.B.

bestimmte

Posted: 29. Nov 2010 16:29
by x.y
Waran erkenne ich bestimmte Zeilen?

Posted: 29. Nov 2010 21:03
by r.b.
Die Zeilen lauten immer UID:TEMP123 und müssen mit UID:"Zufallszahl" ersetzt werden.

Posted: 29. Nov 2010 21:06
by PDA
Zeig mal die relevanten Codezeilen.

zeilen

Posted: 30. Nov 2010 8:44
by brum
Ja, es wäre schon besser, etwas mehr zu sehen.
Ist die Zufallszahl dann das Zeilenende?

Ich könnte mir als Lösung vorstellen - ich bin aber kein richtiger Programmierer - die Datei Zeilenweise auszulesen. Evtl. einer Schleife und der "head -N|tail -1"-Methode und ebenso zeilenweise eine neue Datei mit "echo >>" erstellen und diese zum Schluß umbenenne.

Perl- und sed-Spezies haben bestimmt etwas anderes auf Lager *g*

Posted: 07. Dec 2010 20:43
by jan61
r.b. wrote:Die Zeilen lauten immer UID:TEMP123 und müssen mit UID:"Zufallszahl" ersetzt werden.
Das Problem ist der Zeitpunkt der Ausführung von "echo $RANDOM" - wenn Du sowas z. B. in ein sed-Kommando einbaust, dann wird das von der Shell 1x vor Start des sed ausgeführt. Folgende Schleife sollte es tun:

Code: Select all

while read l; do
  if test "$l" = "UID:TEMP123"; then
    echo "UID:$RANDOM"
  else
    echo "$l"
  fi
done <Quelldatei >Zieldatei
cu
Jan