GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie lösche ich die ersten/letzten 'n' Zeilen aus der Befehlsausgabe in der Shell?

Einer meiner Kollegen hat sich eine Frage ausgedacht – Wie lösche ich die ersten/letzten 'n' Zeilen aus der Ausgabe eines Befehls in der Shell? Beispielsweise wollte er alle unnötigen Zeilen aus der Ausgabe eines Befehls entfernen – systemctl und drucken Sie nur die notwendigen Zeilen. Der Befehl systemctl enthielt einige generische Zeilen am Ende der Ausgabe, wie unten gezeigt. Nun, er möchte diese Zeilen entfernen und den Rest drucken.

Unten ist der Befehl, bevor die unnötigen Zeilen abgeschnitten werden.

$systemctl -a --type=service
 ......
 systemd-tmpfiles-setup.service loaded active exited Create Volatile Files and Directories
 systemd-udev-trigger.service loaded active exited udev Coldplug all Devices
 systemd-udevd.service loaded active running udev Kernel Device Manager
 systemd-update-done.service loaded active exited Update is Completed
 systemd-update-utmp-runlevel.service loaded inactive dead Update UTMP about System Runlevel Changes
 systemd-update-utmp.service loaded active exited Update UTMP about System Boot/Shutdown
 systemd-user-sessions.service loaded active exited Permit User Sessions
 systemd-vconsole-setup.service loaded active exited Setup Virtual Console
 tuned.service loaded active running Dynamic System Tuning Daemon

LOAD = Reflects whether the unit definition was properly loaded.
ACTIVE = The high-level unit activation state, i.e. generalization of SUB.
SUB = The low-level unit activation state, values depend on unit type.

92 loaded units listed.
To show all installed unit files use 'systemctl list-unit-files'.

In der obigen Ausgabe möchte er nur die Dienste auflisten, indem er die letzten 7 Zeilen entfernt (Leerzeichen ist auch eine Zeile).

Lösung :Verwenden Sie head Befehl zum Entfernen der letzten 7 Zeilen wie unten gezeigt:

$ systemctl -a --type=service | head -n -7

Hinweis :das - symbol vor 7, was sehr wichtig ist.

Wie man die ersten n entfernt Zeilen aus der Ausgabe eines Shell-Befehls

Zum Entfernen des ersten n Linien aus der Ausgabe eines Shell-Befehls verwenden Sie tail . Der folgende Beispielbefehl entfernt die ersten 7 Zeilen aus der Ausgabe des Shell-Befehls.

Hinweis :das + symbol vor 7, was sehr wichtig ist.

$ systemctl -a --type=service | tail -n +7

Linux
  1. So listen Sie in PHP geladene oder aktivierte Module über die Befehlszeile auf

  2. Wie weist man die Ausgabe eines Befehls einer Shell-Variablen zu?

  3. Wie lösche ich mehrere zufällige Zeilen aus einer Textdatei mit Sed?

  4. Wie setze ich eine Variable gleich der Ausgabe eines Befehls in Grub2?

  5. Wie lösche ich die ersten N Zeilen einer ASCII-Datei mit Shell-Befehlen?

So löschen Sie Zeilen in Vim / Vi

So führen Sie Shell-Befehle über einen HTTP-Server aus

So leiten Sie die Shell-Befehlsausgabe um

Verzeichnis in Linux entfernen – So löschen Sie einen Ordner von der Befehlszeile aus

So entfernen Sie Zeilen aus einer Datei mit dem Sed-Befehl

Wie führe ich den Vim-Befehl von der Shell aus?