ich steht hier grade etwas auf’m Schlauch.
Ich möchte aus einer Datei eine beliebige Zeile ausgeben. Erstellung der Zufallszahl kein Problem. Nur die Augabe der zugehörigen Zeile will nicht so wie ich will. Zuerst hab ich mir ein Konstrukt mit cat und grep gebastelt, was aber ein mangelhaftes Ergebnis ausspuckte.
Hab mir gedacht, die Datei in ein Array zu packen und das Feld der Zufallszahl auszugeben. Frisch, fromm, fröhlich, frei ans Werk und
ARR=( cat datei.txt )
eingetippt. Tja, jetzt hab ich jedes Wort in einem Arrayfeld (ist halt doch nicht Perl). Kann ich da irgendwie den Fieldseperator ändern?
Lange Rede kurzer Sinn: Wie kann ich die zur Zufallszahl gehörende Zeile ausgeben?
Ich möchte aus einer Datei eine beliebige Zeile ausgeben.
Erstellung der Zufallszahl kein Problem.
Die schnellste Möglichkeit wäre sed zu benutzen.
(Hähä…des Teufels kleiner Helfer!)
sed -ne $= datei
liefert die Anzahl der Zeilen in der Datei, die Du natürlich zur Generierung der Zufallszahl brauchst.
Und dann kömmt ein
sed -ne $(zahl)p datei
(wieso kann ich hier keine geschweiften Klammern posten?!!)
Zum Ausprobieren an der Shell muß der reguläre Ausdruck mit Hochkomma escaped werden !
ODER in Bash-only:
zeilen\_no=0
while [1]
do
read zeile
if [$? -eq 1] # check EOF
then
break
fi
let zeilen\_no+=1
zeilen[$zeilen\_no]="$line"
done
Gruß und viel Spaß
Andreas