Crmgo Blog

Zeilen aus Dateien lesen

Zeilen aus Dateien lesen

Beispiel 1: Ausgabe bestimmter Zeilen anhand ihrer Nummern mit dem Befehl sed Der Befehl ermöglicht es, nur die gewünschten Zeilen mit bestimmten Nummern anzuzeigen, die explizit angegeben werden. Syntax: $ sed -n -e Xp -e Yp DATEINAME sed: Befehl,…

Zeilen aus Dateien lesen

Beispiel 1: Ausgabe bestimmter Zeilen anhand ihrer Nummern mit dem Befehl sed

Der Befehl ermöglicht es, nur die gewünschten Zeilen mit bestimmten Nummern anzuzeigen, die explizit angegeben werden.

Syntax:

  1. $ sed -n -e Xp -e Yp DATEINAME

 

sed: Befehl, der standardmäßig alle Zeilen ohne Ausnahme ausgibt -n: Unterdrückung der Ausgabe -e CMD: auszuführender Befehl Xp: Ausgabe der Zeile mit der Nummer X Yp: Ausgabe der Zeile mit der Nummer Y DATEINAME: Name der zu verarbeitenden Datei

Im folgenden Beispiel werden die Zeilen 120, 145 und 1050 der Datei syslog ausgegeben.

  1. $ sed -n -e 120p -e 145p -e 1050p /var/log/syslog

Im nächsten Beispiel können Sie den Inhalt der Datei /var/log/cron ab Zeile 101 bis einschließlich Zeile 110 anzeigen.

M – Anfangszeile N – Endzeile

Syntax:

  1. sed -n M,Np DATEINAME

 

  1. $ sed -n 101,110p /var/log/cron

Beispiel 2: Ausgabe der ersten N Zeilen einer Datei mit dem Befehl head

In diesem Beispiel werden die ersten 15 Zeilen der Datei /var/log/maillog ausgegeben.

Syntax:

  1. head -n N DATEINAME

 

  1. $ head -n 15 /var/log/maillog

Um die ersten 10 Zeilen des Logs auszugeben, ändern Sie im Beispiel die 15 in eine 10.

Beispiel 3: Nicht-Ausgabe der letzten N Zeilen einer Datei mit dem Befehl head

In diesem Beispiel wird gezeigt, wie die letzten N Zeilen ignoriert und nur die verbleibenden Zeilen ab dem Anfang der Datei angezeigt werden.

Syntax:

  1. head -n -N DATEINAME

Das Beispiel zeigt, wie Sie alle Zeilen der Datei /var/log/secure außer den letzten 250 ausgeben können.

  1. $ head -n -250 /var/log/secure

Beispiel 4: Ausgabe der letzten N Zeilen einer Datei mit dem Befehl tail

Syntax: tail -n N DATEINAME

In diesem Beispiel werden nur die letzten 50 Zeilen der Datei /var/log/messages ausgegeben. Um die letzten 100 Zeilen des Logs anzuzeigen, ändern Sie 50 in 100.

  1. $ tail -n 50 /var/log/messages

Beispiel 5: Ignorieren der ersten N-1 Zeilen einer Datei mit dem Befehl tail

Mit diesem Befehl können Sie die ersten N-1 Zeilen ignorieren und nur die verbleibenden Zeilen anzeigen.

Syntax:

  1. tail -n +N DATEINAME

In diesem Beispiel wird gezeigt, wie die ersten 4 Zeilen der Datei /etc/xinetd.conf, die nur Kommentare enthält, ignoriert werden.

  1. $ tail -n +5 /etc/xinetd.conf
  2. defaults
  3. {
  4. instances = 60
  5. log_type = SYSLOG authpriv
  6. log_on_success = HOST PID
  7. log_on_failure = HOST
  8. cps = 25 30
  9. }
  10. includedir /etc/xinetd.d

Beispiel 6: Echtzeit-Anzeige eines wachsenden Logs mit dem Befehl tail

Das ist wahrscheinlich einer der am häufigsten von Systemadministratoren verwendeten Befehle. Um eine wachsende Datei anzuzeigen und nur den aktualisierten Teil des Log-Inhalts auszugeben, verwenden Sie den Befehl tail -f, wie unten gezeigt.

Im folgenden Beispiel wird der Inhalt der Datei /var/log/syslog in Echtzeit ausgegeben.

Syntax:

  1. tail -f DATEINAME

 

  1. $ tail -f /var/log/syslog

Beispiel 7: Ausgabe bestimmter Zeilen (nach Zeilennummer) mit den Befehlen head und tail

M – Anfangszeile N – Endzeile

Syntax:

  1. cat Datei | tail -n +N | head -n (M-N+1)

Im folgenden Beispiel werden die Zeilen 101 bis 110 der Datei /var/log/anaconda.log ausgegeben.

  1. $ cat /var/log/anaconda.log | tail -n +101 | head -n 10

 

cat: gibt die gesamte Datei in die Standardausgabe (stdout) aus. tail -n +101: ignoriert Zeilen bis zur angegebenen Nummer und beginnt dann mit der Ausgabe ab dieser Zeile. head -n 10: gibt die ersten 10 Zeilen aus, also von 101 bis 110; der Rest wird ignoriert.

Beispiel 8: Ausgabe von Zeilen, die mit einem Muster übereinstimmen, sowie der unmittelbar folgenden Zeilen.

Im folgenden Beispiel wird gezeigt, wie Zeilen, die mit dem Muster „Initializing CPU“ übereinstimmen, aus der Datei /var/log/dmesg ausgegeben werden, sowie die 5 unmittelbar folgenden Zeilen.

  1. # grep "Initializing CPU#1" /var/log/dmesg
  2. Initializing CPU#1

[Hinweis: Dieser Befehl gibt nur Zeilen aus, die mit dem Muster übereinstimmen]

  1. # grep -A 5 "Initializing CPU#1" dmesg
  2. Initializing CPU#1
  3. Calibrating delay using timer specific routine.. 3989.96 BogoMIPS (lpj=1994982)
  4. CPU: After generic identify, caps: bfebfbff 20100000 00000000 00000000
  5. CPU: After vendor identify, caps: bfebfbff 20100000 00000000 00000000
  6. monitor/mwait feature present.
  7. CPU: L1 I cache: 32K, L1 D cache: 32K

[Hinweis: Dieser Befehl gibt die übereinstimmende Zeile sowie die 5 darauffolgenden Zeilen aus]

Zusätzlich zu den Standardfunktionen bietet grep folgende Operationen:

Anzeigen von Zeilen, die mit einem Muster übereinstimmen – die Grundfunktion des grep-Befehls. Anzeigen nur der ausgewählten Zeichen. Anzeigen von N Zeilen nach der Übereinstimmung mit dem Argument -A. Anzeigen von N Zeilen vor der Übereinstimmung mit dem Argument -B. Anzeigen von N Zeilen vor und nach der Übereinstimmung mit dem Argument -C.

Beispiel 9: Ausgabe bestimmter Bytes aus einer Datei.

Im folgenden Beispiel wird gezeigt, wie man entweder die ersten 40 oder die letzten 30 Bytes einer Datei ausgibt.
Ausgabe der ersten 40 Bytes der Datei syslog.

  1. $ head -c40 /var/log/syslog

Ausgabe der letzten 30 Bytes der Datei syslog.

  1. $ tail -c30 /var/log/syslog

Beispiel 10: Anzeige komprimierter Logs.

Regelmäßig werden alle System-Logs komprimiert. Sie können diese „on the fly“ entpacken und das Ergebnis mit einem anderen Befehl verarbeiten. Wie dies funktioniert, wird unten gezeigt.

Ausgabe der ersten N Zeilen einer komprimierten Datei.

  1. $ zcat file.gz | head -250

Ausgabe der letzten N Zeilen einer komprimierten Datei.

  1. $ zcat file.gz | tail -250

Ignorieren der letzten N Zeilen einer komprimierten Datei.

  1. $ zcat file.gz | head -n -250

Ignorieren der ersten N Zeilen einer komprimierten Datei.

  1. $ zcat file.gz | tail -n +250

Anzeigen von Zeilen, die mit einem Muster übereinstimmen

  1. $ zcat file.gz | grep -A2 'error'

Anzeigen eines Satzes von Zeilen anhand ihrer angegebenen Zeilennummern.

  1. $ zcat file.gz | sed -n -e 45p -e 52p

Hinweis: Dieser Beitrag kann KI-unterstützt erstellt und anschließend redaktionell geprüft worden sein. Verantwortlich: Dmytro Lomaka, Kaltenkirchen.

Kategorien: sed