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
Im folgenden Beispiel werden die Zeilen 120, 145 und 1050 der Datei syslog ausgegeben.
- $ 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.
Syntax:
- sed -n M,Np DATEINAME
- $ 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:
- head -n N DATEINAME
- $ 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:
- head -n -N DATEINAME
Das Beispiel zeigt, wie Sie alle Zeilen der Datei /var/log/secure außer den letzten 250 ausgeben können.
- $ 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.
- $ 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:
- 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.
- $ tail -n +5 /etc/xinetd.conf
- defaults
- {
- instances = 60
- log_type = SYSLOG authpriv
- log_on_success = HOST PID
- log_on_failure = HOST
- cps = 25 30
- }
- 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:
- tail -f DATEINAME
- $ tail -f /var/log/syslog
Beispiel 7: Ausgabe bestimmter Zeilen (nach Zeilennummer) mit den Befehlen head und tail
Syntax:
- 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.
- $ cat /var/log/anaconda.log | tail -n +101 | head -n 10
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.
- # grep "Initializing CPU#1" /var/log/dmesg
- Initializing CPU#1
[Hinweis: Dieser Befehl gibt nur Zeilen aus, die mit dem Muster übereinstimmen]
- # grep -A 5 "Initializing CPU#1" dmesg
- Initializing CPU#1
- Calibrating delay using timer specific routine.. 3989.96 BogoMIPS (lpj=1994982)
- CPU: After generic identify, caps: bfebfbff 20100000 00000000 00000000
- CPU: After vendor identify, caps: bfebfbff 20100000 00000000 00000000
- monitor/mwait feature present.
- 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:
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.
- $ head -c40 /var/log/syslog
Ausgabe der letzten 30 Bytes der Datei syslog.
- $ 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.
- $ zcat file.gz | head -250
Ausgabe der letzten N Zeilen einer komprimierten Datei.
- $ zcat file.gz | tail -250
Ignorieren der letzten N Zeilen einer komprimierten Datei.
- $ zcat file.gz | head -n -250
Ignorieren der ersten N Zeilen einer komprimierten Datei.
- $ zcat file.gz | tail -n +250
Anzeigen von Zeilen, die mit einem Muster übereinstimmen
- $ zcat file.gz | grep -A2 'error'
Anzeigen eines Satzes von Zeilen anhand ihrer angegebenen Zeilennummern.
- $ zcat file.gz | sed -n -e 45p -e 52p
