2. Zeile ausgeben lassen



  • Wie kann man von einer Textdatei die 2. Zeile ausgeben lassen?



  • head -n 2 filename | tail -n 1

    Gruss Amtrak



  • Aus dem RedHat-Magazin geklaut und modifiziert 😃

    #!/bin/bash
    control=0
    cat $1 | while read line; do
    	if [ $control = "0" ]; then
    		control=1
    	else
    		echo $line
    		exit
    	fi
    done
    

    Gibt dir die zweite Zeile aus! Dateinamen musst du an das Skript als Argument ausgeben.



  • Danke hat schon geholfen. 👍



  • ºgrimmsenº®: Igitt, ist das hässlich, haben die das echt so geschrieben?
    Amtrak: Lustige Idee. 🙂

    Irgendwie finde ich trotzdem

    sed -n '2p' dateiname
    

    eleganter/ verständlicher. 😉



  • [2addr]p
    Write the pattern space to standard output.

    Wie kommst denn auf die Lösung ? 😮
    Mit der Beschreibung (s.o.) komme ich nicht weit.

    Wie kann man sich dann mit sed einzelne Felder anzeigen lassen (vgl. mit cat "datei" | cut -f1-2 -d:] ?



  • Zickedi schrieb:

    Wie kommst denn auf die Lösung ? 😮

    Warum, funktioniert sie etwa nicht? 😕
    An und für sich sollte das -n einfach den silent-mode aktivieren und '2p' heißt im Grunde nur sowas wie "Zeile: 2, Kommando: print". Ziemlich straightforward also. 🙂
    (Lies uU - falls Dich sed interessiert - mal einen etwas ausführlicheren Text zu sed als nur die Manpage, die ist zum Einstieg uU nicht so toll geeignet. "sed & awk" von O'Reilly soll recht gut sein, ich selbst habe es allerdings nicht gelesen.)

    Zickedi schrieb:

    Wie kann man sich dann mit sed einzelne Felder anzeigen lassen (vgl. mit cat "datei" | cut -f1-2 -d:] ?

    Wenn Du viel mit Feldern arbeitest ist uU awk besser geeignet als sed.

    awk -F":" '{ print $1 " " $2 }' datei.text
    

    Macht ungefähr das gleiche wie Dein cut, nur wird der field separator nicht ausgegeben, finde ich angenehmer... 🙂
    (Wenn Du ihn brauchst dann schreib halt statt dem " " einfach FS... 😉 )



  • @nman:
    Jo war echt so. 'n Typ hat die Frage gestellt wie man sich jede 2. Zeile einer Datei ausgeben lassen kann. Hab einfach ein exit nach der 2. Zeile eingesetzt. Aber der Code war wirklich so ähnlich.
    Klar. Unix/Linux bietet Tools die das besser können, aber so'n bisschen Shellscripting übt ungemein.
    Nichtsdestotrotz... 😃



  • ºgrimmsenº® schrieb:

    Unix/Linux bietet Tools die das besser können, aber so'n bisschen Shellscripting übt ungemein.

    *g* Schon klar, aber sed & Co. gehören zum erfolgreichen Shellscripten einfach dazu, ohne die wirds teilweise echt anstrengend. 🙂



  • Ne, ist auch völlig in Ordnung.
    Ich hab mich nur gefragt, wie manche auf so eine Lösung kommen.
    Habe´die Manuals von sed durchgelesen und wäre dadurch sicher nicht darauf gekommen.
    Also großes Lob.

    Auch Shellskripte sind gern willkommen. Man kann ja nur dazulernen. 🙂


Anmelden zum Antworten