Zeilen in Textdatei mit Zufallszahlen ersetzen

Antworten
Nachricht
Autor
r.b.
Beiträge: 11
Registriert: 14. Okt 2007 11:41
Wohnort: Soltau
Kontaktdaten:

Zeilen in Textdatei mit Zufallszahlen ersetzen

#1 Beitrag von r.b. » 29. Nov 2010 13:15

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.

x.y

bestimmte

#2 Beitrag von x.y » 29. Nov 2010 16:29

Waran erkenne ich bestimmte Zeilen?

r.b.
Beiträge: 11
Registriert: 14. Okt 2007 11:41
Wohnort: Soltau
Kontaktdaten:

#3 Beitrag von r.b. » 29. Nov 2010 21:03

Die Zeilen lauten immer UID:TEMP123 und müssen mit UID:"Zufallszahl" ersetzt werden.

PDA

#4 Beitrag von PDA » 29. Nov 2010 21:06

Zeig mal die relevanten Codezeilen.

brum

zeilen

#5 Beitrag von brum » 30. Nov 2010 8:44

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*

jan61

#6 Beitrag von jan61 » 07. Dez 2010 20:43

r.b. hat geschrieben: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: Alles auswählen

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

Antworten