GNU/Linux >> Tutoriels Linux >  >> Linux

Comment supprimer les premières/dernières lignes 'n' de la sortie de la commande dans Shell ?

Un de mes collègues a posé une question - Comment supprimer les premières/dernières lignes de la sortie d'une commande dans Shell ? Par exemple, il voulait réduire toutes les lignes inutiles de la sortie d'une commande - systemctl et n'imprimez que les lignes nécessaires. La commande systemctl contenait quelques lignes génériques à la fin de la sortie, comme indiqué ci-dessous. Eh bien, il veut supprimer ces lignes et imprimer le reste.

Ci-dessous se trouve la commande avant de couper les lignes inutiles.

$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'.

Dans la sortie ci-dessus, il souhaite répertorier uniquement les services en supprimant les 7 dernières lignes (l'espace est également une ligne).

Solution  :Utilisez head commande pour supprimer les 7 dernières lignes comme indiqué ci-dessous :

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

Remarque :le - symbol avant 7h, ce qui est très important.

Comment supprimer le premier n lignes de la sortie d'une commande shell

Pour supprimer le premier n lignes à partir de la sortie d'une commande shell, utilisez tail . L'exemple de commande ci-dessous supprime les 7 premières lignes de la sortie de la commande shell.

Remarque :le symbole + symbol avant 7h, ce qui est très important.

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

Linux
  1. Comment lister les modules chargés ou activés en PHP à partir de la ligne de commande

  2. Comment récupérer un travail en arrière-plan à partir d'un shell précédent ??

  3. Comment supprimer plusieurs lignes aléatoires d'un fichier texte à l'aide de Sed ?

  4. Comment définir une variable égale à la sortie d'une commande dans Grub2 ?

  5. Comment supprimer les N premières lignes d'un fichier Ascii à l'aide des commandes Shell ?

Comment supprimer des lignes dans Vim / Vi

Comment exécuter des commandes Shell via un serveur HTTP

Comment rediriger la sortie de la commande shell

Supprimer le répertoire sous Linux - Comment supprimer un dossier de la ligne de commande

Comment supprimer des lignes d'un fichier à l'aide de la commande Sed

Comment capturer la première adresse IP à partir d'une commande ifconfig ?