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