GNU/Linux >> Znalost Linux >  >> Linux

Jak odstranit první/poslední „n“ řádky z výstupu příkazu v prostředí Shell?

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

Linux
  1. Jak obnovit práci na pozadí z předchozího shellu?

  2. Jak odstranit prvních N řádků souboru Ascii pomocí příkazů Shell?

  3. Získejte první řádek výstupu příkazu shellu

  1. Jak zobrazit seznam modulů načtených nebo povolených v PHP z příkazového řádku

  2. Jak spustit příkaz Vim z shellu?

  3. Jak zachytit první IP adresu z příkazu ifconfig?

  1. Jak přiřadit výstup příkazu proměnné shellu?

  2. Jak odstranit více náhodných řádků z textového souboru pomocí Sed?

  3. Jak nastavit proměnnou rovnou výstupu z příkazu v Grub2?