GNU/Linux >> Linux Esercitazione >  >> Linux

Come eliminare le prime / ultime "n" righe dall'output del comando in Shell?

Uno dei miei colleghi ha presentato una query:come eliminare le prime/ultime righe "n" dall'output di un comando in Shell? Ad esempio, voleva eliminare tutte le righe non necessarie dall'output di un comando – systemctl e stampa solo le righe necessarie. Il comando systemctl conteneva poche righe generiche alla fine dell'output come mostrato di seguito. Bene, vuole rimuovere quelle righe e stampare il resto.

Di seguito è riportato il comando prima di tagliare le righe non necessarie.

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

Nell'output sopra, vuole elencare solo i servizi rimuovendo le ultime 7 righe (anche lo spazio è una riga).

Soluzione :Usa head comando per rimuovere le ultime 7 righe come mostrato di seguito:

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

Nota :il simbolo - symbol prima delle 7, che è molto importante.

Come rimuovere il primo n righe dall'output di un comando della shell

Per rimuovere il primo n righe dall'output di un comando della shell usa tail . Sotto il comando di esempio rimuove le prime 7 righe dall'output del comando della shell.

Nota :il simbolo + symbol prima delle 7, che è molto importante.

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

Linux
  1. Come elencare i moduli caricati o abilitati in PHP dalla riga di comando

  2. Come assegnare l'output di un comando a una variabile di shell?

  3. Come impostare una variabile uguale all'output di un comando in Grub2?

  4. Come eliminare le prime N righe di un file Ascii utilizzando i comandi della shell?

  5. Come sapere se l'output di un comando o di uno script di shell è Stdout o Stderr?

Come eliminare le righe in Vim / Vi

Come eseguire i comandi della shell tramite il server HTTP

Come reindirizzare l'output del comando della shell

Rimuovi directory in Linux - Come eliminare una cartella dalla riga di comando

Come rimuovere le righe da un file usando il comando Sed

Come acquisire il primo indirizzo IP da un comando ifconfig?