Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Jede k-te Zeile einer Datei ausgeben
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Diskussionsforum
View previous topic :: View next topic  
Author Message
schachti
Advocate
Advocate


Joined: 28 Jul 2003
Posts: 3765
Location: Gifhorn, Germany

PostPosted: Sun Mar 25, 2007 8:06 am    Post subject: Jede k-te Zeile einer Datei ausgeben Reply with quote

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
View user's profile Send private message
ixo
Guru
Guru


Joined: 09 Jul 2005
Posts: 375

PostPosted: Sun Mar 25, 2007 8:33 am    Post subject: Reply with quote

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
View user's profile Send private message
schachti
Advocate
Advocate


Joined: 28 Jul 2003
Posts: 3765
Location: Gifhorn, Germany

PostPosted: Sun Mar 25, 2007 8:53 am    Post subject: Reply with quote

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
View user's profile Send private message
firefly
Watchman
Watchman


Joined: 31 Oct 2002
Posts: 5320

PostPosted: Sun Mar 25, 2007 9:05 am    Post subject: Reply with quote

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
View user's profile Send private message
schachti
Advocate
Advocate


Joined: 28 Jul 2003
Posts: 3765
Location: Gifhorn, Germany

PostPosted: Sun Mar 25, 2007 9:12 am    Post subject: Reply with quote

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
View user's profile Send private message
Fauli
l33t
l33t


Joined: 24 Apr 2004
Posts: 760
Location: Moers, Germany

PostPosted: Sun Mar 25, 2007 4:39 pm    Post subject: Reply with quote

Wenn man gerade kein Perl zur Hand hat, geht's auch mit awk:
Code:
awk '!(NR%4)'

_________________
Do your part to beautify the web! Turn off link underlining!
Back to top
View user's profile Send private message
toralf
Developer
Developer


Joined: 01 Feb 2004
Posts: 3940
Location: Hamburg

PostPosted: Mon Mar 26, 2007 2:30 pm    Post subject: Reply with quote

Fauli wrote:
Wenn man gerade kein Perl zur Hand hat, geht's auch mit awk:
Code:
awk '!(NR%4)'
cool !
Back to top
View user's profile Send private message
sirro
Veteran
Veteran


Joined: 20 Jul 2003
Posts: 1472
Location: aachen.nrw.de.eu

PostPosted: Mon Mar 26, 2007 3:17 pm    Post subject: Reply with quote

Fauli wrote:
Code:
awk '!(NR%4)'

Krass. 8O
http://bash.org/?745175 wrote:
<ralph> perl is the lossy compression for programming languages

Was ist dann awk? ;-)
Back to top
View user's profile Send private message
Earthwings
Bodhisattva
Bodhisattva


Joined: 14 Apr 2003
Posts: 7753
Location: Germany

PostPosted: Mon Mar 26, 2007 3:26 pm    Post subject: Reply with quote

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
View user's profile Send private message
schachti
Advocate
Advocate


Joined: 28 Jul 2003
Posts: 3765
Location: Gifhorn, Germany

PostPosted: Mon Mar 26, 2007 3:37 pm    Post subject: Reply with quote

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
View user's profile Send private message
think4urs11
Bodhisattva
Bodhisattva


Joined: 25 Jun 2003
Posts: 6659
Location: above the cloud

PostPosted: Mon Mar 26, 2007 3:44 pm    Post subject: Reply with quote

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
View user's profile Send private message
schachti
Advocate
Advocate


Joined: 28 Jul 2003
Posts: 3765
Location: Gifhorn, Germany

PostPosted: Tue Mar 27, 2007 4:54 pm    Post subject: Reply with quote

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
View user's profile Send private message
Earthwings
Bodhisattva
Bodhisattva


Joined: 14 Apr 2003
Posts: 7753
Location: Germany

PostPosted: Tue Mar 27, 2007 5:03 pm    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Diskussionsforum All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum