Hallo
Ich habe eine Frage:
Ich habe eine bestehende Liste bzw. eine Worttabelle. Ich bin noch Anfänger in Shellscript. Ich weiss zwar, wie man aus dieser Liste zufällig eine Zeile herauspicken möchte. Nur möchte ich nun zufällig verschiedene Zeilen aus dieser Liste herauspicken.
aaa;bbb
ccc;ddd
eee;fff
ggg;hhh
iii;jjj
Einmal möchte ich, dass man sagen kann, wie viele Zeilen zufällig herauspicken kann. Also z.B. dass ich per read vom User eine 2 erhalte, und dann pickt er mir z.B. Zeile 3 und 5 heraus, auf der anderen Seite möchte ich noch eine Version machen, dass er einfach alles zufällig herauspickt, so könnte z.b. 2,4,5 am Schluss übrig sein, aber auch nur zeile 2 oder 1 oder was auch immer.
Kann mir da jemand auf die sprünge helfen?
Zufällig eine Liste beschränken
Hallo monox,
mir sind die "Zufälle" noch nicht so klar...und mir ist noch nicht klar ob Du zufällig nach Zeilennummern oder Wörtern suchst.
http://de.linwiki.org/index.php/Linuxfi ... -Werkzeuge und dann
Reguläre Ausdrücke, grep, sed und awk
Hilft Dir das weiter, oder in welcher Richtung suchst Du?
Gruß fuzzy
mir sind die "Zufälle" noch nicht so klar...und mir ist noch nicht klar ob Du zufällig nach Zeilennummern oder Wörtern suchst.
Code: Alles auswählen
knoppix@9[~]$ cat test.txt
aaa;bbb
ccc;ddd
eee;fff
ggg;hhh
iii;jjj
knoppix@9[~]$ sed '/^[ccc|ggg]/!d' test.txt # -> Zeilen, die mit ccc oder ggg beginnen
ccc;ddd
ggg;hhh
knoppix@9[~]$ sed -n '2p;4p' test.txt # -> zweite und vierte Zeile anzeigen
ccc;ddd
ggg;hhh
knoppix@9[~]$ sed '/^[a-d]/!d' test.txt # -> nur die Zeilen übriglassen, die mit a, b, c, oder d beginnen
aaa;bbb
ccc;ddd
knoppix@9[~]$ sed -n '1p;$p' test.txt # -> die erste und letzte Zeile anzeigen
aaa;bbb
iii;jjj
knoppix@9[~]$ sed -n '4,$p' test.txt # -> die vierte bis zur letzten Zeile anzeigen
ggg;hhh
iii;jjj
knoppix@9[~]$ grep ^ccc test.txt # -> die Zeilen anzeigen, die mit ccc beginnen
ccc;ddd
Reguläre Ausdrücke, grep, sed und awk
Hilft Dir das weiter, oder in welcher Richtung suchst Du?
Gruß fuzzy
Hi,
ich haette eine andere Idee.
Wenn du die Funktion rand aufrufst, das Ergebnis mit der Anzahl der Elemente multiplizierst, und anschliessend rundest, sollte das das sein was du suchst, oder?
ich haette eine andere Idee.
Wenn du die Funktion rand aufrufst, das Ergebnis mit der Anzahl der Elemente multiplizierst, und anschliessend rundest, sollte das das sein was du suchst, oder?
Roland
"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"
"Aber wenn du schon so unwissend bist, davon noch nicht gehört zu haben,
so will ich es doch als gut ansehen, daß du lieber einmal töricht fragst,
als weiterhin nichts von etwas zu wissen, das man doch wissen sollte."
aus "Die Edda des Snorri Sturluson", "Gylfis Täuschung"