View previous topic :: View next topic |
Author |
Message |
schachti Advocate
Joined: 28 Jul 2003 Posts: 3765 Location: Gifhorn, Germany
|
Posted: Sun Mar 25, 2007 8:06 am Post subject: Jede k-te Zeile einer Datei ausgeben |
|
|
Ich finde leider auf die Schnelle kein Kommandozeilentool, mit dem ich jede k-te Zeile einer Datei ausgeben kann - hat da jemand einen Tipp? _________________ Never argue with an idiot. He brings you down to his level, then beats you with experience.
How-To: Daten verschlüsselt auf DVD speichern. |
|
Back to top |
|
|
ixo Guru
Joined: 09 Jul 2005 Posts: 375
|
Posted: Sun Mar 25, 2007 8:33 am Post subject: |
|
|
Versuch doch mal:
Code: | perl -ne 'print unless $. % 4' < x |
Das liest jede 4. Zeile aus der Datei 'x'.
Wozu braucht man so etwas?
Gruß ixo. |
|
Back to top |
|
|
schachti Advocate
Joined: 28 Jul 2003 Posts: 3765 Location: Gifhorn, Germany
|
Posted: Sun Mar 25, 2007 8:53 am Post subject: |
|
|
ixo wrote: | Versuch doch mal:
Code: | perl -ne 'print unless $. % 4' < x |
Das liest jede 4. Zeile aus der Datei 'x'.
|
Danke!
ixo wrote: |
Wozu braucht man so etwas?
|
Ich habe ein Programm, das verschiedene mathematische Berechnungen anstellt, in einer Schleife laufen lassen. Das Programm selbst gibt verschiedene Ergebnisse zeilenweise aus. Jetzt muß ich aus dem großen Ausgabe-Wust die richtigen Sachen zusammensuchen, um sie auswerten zu können. _________________ Never argue with an idiot. He brings you down to his level, then beats you with experience.
How-To: Daten verschlüsselt auf DVD speichern. |
|
Back to top |
|
|
firefly Watchman
Joined: 31 Oct 2002 Posts: 5321
|
Posted: Sun Mar 25, 2007 9:05 am Post subject: |
|
|
schachti wrote: | ixo wrote: | Versuch doch mal:
Code: | perl -ne 'print unless $. % 4' < x |
Das liest jede 4. Zeile aus der Datei 'x'.
|
Danke!
ixo wrote: |
Wozu braucht man so etwas?
|
Ich habe ein Programm, das verschiedene mathematische Berechnungen anstellt, in einer Schleife laufen lassen. Das Programm selbst gibt verschiedene Ergebnisse zeilenweise aus. Jetzt muß ich aus dem großen Ausgabe-Wust die richtigen Sachen zusammensuchen, um sie auswerten zu können. |
Hmm haben die gesuchten ergebniss zeilen eine gemeinsamkeit, welche nur in diesen Zeilen auftauchen, z.b. das wort "Endergebniss"?
Wenn ja dann könntest du mit grep was machen. Oder du änderst das Programm ab, wenn du das kannst/darfst. _________________ Ein Ring, sie zu knechten, sie alle zu finden,
Ins Dunkel zu treiben und ewig zu binden
Im Lande Mordor, wo die Schatten drohn. |
|
Back to top |
|
|
schachti Advocate
Joined: 28 Jul 2003 Posts: 3765 Location: Gifhorn, Germany
|
Posted: Sun Mar 25, 2007 9:12 am Post subject: |
|
|
firefly wrote: |
Hmm haben die gesuchten ergebniss zeilen eine gemeinsamkeit, welche nur in diesen Zeilen auftauchen, z.b. das wort "Endergebniss"?
|
Haben sie. Das sieht allerdings so aus:
Szenario 1:
Wert a:
Wert b:
...
Szenario 2:
Wert a:
Wert b:
...
...
Ich mache dann zum Beispiel ein grep "Wert a", weil ich die Ergebnisse für Wert a graphisch, getrennt nach Szenario, auftragen möchte - und dann muß ich die resultierenden Zeilen halt dem jeweils korrekten Szenario zuweisen (zum Beispiel Zeilen 1, 10, 19, 28, ... zu Szenario 1, Zeilen 2, 11, 20, 29, ... zu Szenario 2 und so weiter.
firefly wrote: |
Oder du änderst das Programm ab, wenn du das kannst/darfst.
|
Kann ich und darf ich - nur sind die Daten nach vielen vielen Rechenstunden halt da und müssen ausgewertet werden. _________________ Never argue with an idiot. He brings you down to his level, then beats you with experience.
How-To: Daten verschlüsselt auf DVD speichern. |
|
Back to top |
|
|
Fauli l33t
Joined: 24 Apr 2004 Posts: 760 Location: Moers, Germany
|
Posted: Sun Mar 25, 2007 4:39 pm Post subject: |
|
|
Wenn man gerade kein Perl zur Hand hat, geht's auch mit awk: _________________ Do your part to beautify the web! Turn off link underlining! |
|
Back to top |
|
|
toralf Developer
Joined: 01 Feb 2004 Posts: 3940 Location: Hamburg
|
Posted: Mon Mar 26, 2007 2:30 pm Post subject: |
|
|
Fauli wrote: | Wenn man gerade kein Perl zur Hand hat, geht's auch mit awk: | cool ! |
|
Back to top |
|
|
sirro Veteran
Joined: 20 Jul 2003 Posts: 1472 Location: aachen.nrw.de.eu
|
Posted: Mon Mar 26, 2007 3:17 pm Post subject: |
|
|
Krass.
Was ist dann awk? |
|
Back to top |
|
|
Earthwings Bodhisattva
Joined: 14 Apr 2003 Posts: 7753 Location: Germany
|
Posted: Mon Mar 26, 2007 3:26 pm Post subject: |
|
|
Mit sed kannst du auch ne Menge machen. sed.sf.net: |
# beginning at line 3, print every 7th line
gsed -n '3~7p' # GNU sed only
sed -n '3,${p;n;n;n;n;n;n;}' # other seds |
_________________ KDE |
|
Back to top |
|
|
schachti Advocate
Joined: 28 Jul 2003 Posts: 3765 Location: Gifhorn, Germany
|
Posted: Mon Mar 26, 2007 3:37 pm Post subject: |
|
|
Das ist das, was mich am Linux-Umfeld immer wieder beeindruckt: Die Vielfalt unterschiedlicher Möglichkeiten, ein Ziel zu erreichen. Die sed-Variante gefällt mir irgendwie am besten (aber das ist natürlich rein subjektiv ). _________________ Never argue with an idiot. He brings you down to his level, then beats you with experience.
How-To: Daten verschlüsselt auf DVD speichern. |
|
Back to top |
|
|
think4urs11 Bodhisattva
Joined: 25 Jun 2003 Posts: 6659 Location: above the cloud
|
Posted: Mon Mar 26, 2007 3:44 pm Post subject: |
|
|
die 'sed-2in1'-Lösung sähe so aus:
Code: | sed -n '/Szenario 2/{n;!p;n;p;}' |
würde 'Wert b:' für Szenario 2 ausspucken
für 'Wert c' ersetze {n;!p;n;p;} durch {n;!p;n;!p;n;p;} _________________ Nothing is secure / Security is always a trade-off with usability / Do not assume anything / Trust no-one, nothing / Paranoia is your friend / Think for yourself |
|
Back to top |
|
|
schachti Advocate
Joined: 28 Jul 2003 Posts: 3765 Location: Gifhorn, Germany
|
Posted: Tue Mar 27, 2007 4:54 pm Post subject: |
|
|
Earthwings wrote: |
gsed -n '3~7p' # GNU sed only
|
Blöde Frage, bitte nicht schlagen: Wie kriege ich die Bash dazu, den Inhalt einer Variablen dort hineinzupacken? Der folgende Code funktioniert nicht, wie muß es richtig heißen?
Code: |
for ((i=1; i<=10; i++)); do
cat $file | sed '$i~10p'
done
|
_________________ Never argue with an idiot. He brings you down to his level, then beats you with experience.
How-To: Daten verschlüsselt auf DVD speichern. |
|
Back to top |
|
|
Earthwings Bodhisattva
Joined: 14 Apr 2003 Posts: 7753 Location: Germany
|
Posted: Tue Mar 27, 2007 5:03 pm Post subject: |
|
|
Der Parameter "-n" fehlt noch, cat ist überflüssig und '$i' sorgt aufgrund der einfachen Anführungsstriche dafür, dass die bash die Variable nicht interpretiert - du brauchst also doppelte Anführungsstriche.
Code: | for ((i=1; i<=10; ++i)); do
sed -n "$i~10p" "${file}"
done |
_________________ KDE |
|
Back to top |
|
|
|