Jeden můj kolega přišel s dotazem – Jak odstranit první/poslední ‚n‘ řádky z výstupu příkazu v Shellu? Například chtěl oříznout všechny nepotřebné řádky z výstupu příkazu – systemctl
a tiskněte pouze nezbytné řádky. Příkaz systemctl
obsahoval několik obecných řádků na konci výstupu, jak je uvedeno níže. No, chce ty řádky odstranit a zbytek vytisknout.
Níže je uveden příkaz před oříznutím nepotřebných řádků.
$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'.
Ve výše uvedeném výstupu chce vypsat pouze služby odstraněním posledních 7 řádků (mezera je také řádek).
Řešení :Použijte head
příkaz k odstranění posledních 7 řádků jak je uvedeno níže:
$ systemctl -a --type=service | head -n -7
Poznámka :symbol - symbol
před 7, což je velmi důležité.
Jak odstranit první n
řádků z výstupu příkazu shell
Chcete-li odstranit první n
čáry z výstupu příkazu shellu použijte tail
. Níže uvedený příkladový příkaz odstraní prvních 7 řádků z výstupu příkazu shell.
Poznámka :symbol + symbol
před 7, což je velmi důležité.
$ systemctl -a --type=service | tail -n +7