GNU/Linux >> Linux Esercitazione >  >> Linux

Stampa file senza commenti e righe vuote in Linux

Quando visualizzi un codice sorgente o il contenuto di un file di configurazione nell'output standard usando cat comando, vedrai tutto in quel file comprese le righe commentate e vuote, giusto? Sì. E se volessi visualizzare solo le righe non commentate, ignorando tutte le altre? Bene, è possibile ignorare le righe commentate e vuote dall'output di un file. In questa breve guida vedremo come stampare file senza commenti e righe vuote in Linux. Questo può essere utile quando vuoi rivedere rapidamente un file di configurazione che contiene molti commenti e righe vuote.

Cosa sono i commenti nella programmazione di computer?

Se guardi in un codice sorgente o in un file di configurazione, noterai che molte righe iniziano con un asterisco "*" o un hash "#" o una barra "/" o un punto e virgola ";" . Queste righe sono note come Commenti . Nella programmazione per computer, un commento è una descrizione o un'annotazione leggibile dall'uomo utilizzata per chiarire lo scopo del codice. Aiutano gli utenti e altri programmatori a capire facilmente cosa sta facendo il codice. In genere, i commenti e le righe vuote verranno ignorati da compilatori e interpreti. Sono solo per i programmatori. La sintassi dei commenti varia a seconda del linguaggio di programmazione.

Ora vediamo come escludere o saltare questi commenti e righe vuote e visualizzare solo le righe che non sono commentate.

Stampa file senza commenti e righe vuote in Linux

Lascia che ti mostri i contenuti di sources.list file del mio sistema Ubuntu:

$ cat /etc/apt/sources.list

Risultato di esempio:

# deb cdrom:[Ubuntu 18.04.2 LTS _Bionic Beaver_ - Release amd64 (20190210)]/ bionic main restricted

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to
# newer versions of the distribution.
deb http://it-mirrors.evowise.com/ubuntu/ focal main restricted
# deb-src http://in.archive.ubuntu.com/ubuntu/ bionic main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://it-mirrors.evowise.com/ubuntu/ focal-updates main restricted
# deb-src http://in.archive.ubuntu.com/ubuntu/ bionic-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu
## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://it-mirrors.evowise.com/ubuntu/ focal universe
# deb-src http://in.archive.ubuntu.com/ubuntu/ bionic universe
deb http://it-mirrors.evowise.com/ubuntu/ focal-updates universe
# deb-src http://in.archive.ubuntu.com/ubuntu/ bionic-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu 
## team, and may not be under a free licence. Please satisfy yourself as to 
## your rights to use the software. Also, please note that software in 
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://it-mirrors.evowise.com/ubuntu/ focal multiverse
# deb-src http://in.archive.ubuntu.com/ubuntu/ bionic multiverse
deb http://it-mirrors.evowise.com/ubuntu/ focal-updates multiverse
# deb-src http://in.archive.ubuntu.com/ubuntu/ bionic-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.
deb http://it-mirrors.evowise.com/ubuntu/ focal-backports main restricted universe multiverse
# deb-src http://in.archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse

## Uncomment the following two lines to add software from Canonical's
## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
# deb http://archive.canonical.com/ubuntu bionic partner
# deb-src http://archive.canonical.com/ubuntu bionic partner

deb http://it-mirrors.evowise.com/ubuntu/ focal-security main restricted
# deb-src http://security.ubuntu.com/ubuntu bionic-security main restricted
deb http://it-mirrors.evowise.com/ubuntu/ focal-security universe
# deb-src http://security.ubuntu.com/ubuntu bionic-security universe
deb http://it-mirrors.evowise.com/ubuntu/ focal-security multiverse
# deb-src http://security.ubuntu.com/ubuntu bionic-security multiverse

Hai visto che molte righe sono commentate con il carattere "#"? Rende il file meno leggibile. Questo è solo un piccolo file, quindi non è un grosso problema. Ma quando leggi un file di configurazione molto lungo, ad esempio "httpd.conf" o "php.ini", dovrai passare attraverso molti commenti e righe vuote ed è un po' confuso trovare quali righe sono attive e quali no.

Per evitare che tutti i commenti e le righe vuote vengano visualizzati nell'output del file, utilizza grep comando come di seguito:

$ grep "^[^#*/;]" /etc/apt/sources.list

Ecco,

  • il primo ^ il carattere indica l'inizio della riga nel file specificato, ad esempio /etc/apt/sources.list .
  • [^#*/;] - visualizzerà tutte le righe che iniziano con qualsiasi carattere diverso da questi quattro caratteri "#" , "*" , "/" , ";" . In altre parole, tutte le righe che iniziano con i caratteri "#" , "*" , "/" , ";" sarà escluso dall'output.

Esempio di output del comando precedente:

deb http://it-mirrors.evowise.com/ubuntu/ focal main restricted
deb http://it-mirrors.evowise.com/ubuntu/ focal-updates main restricted
deb http://it-mirrors.evowise.com/ubuntu/ focal universe
deb http://it-mirrors.evowise.com/ubuntu/ focal-updates universe
deb http://it-mirrors.evowise.com/ubuntu/ focal multiverse
deb http://it-mirrors.evowise.com/ubuntu/ focal-updates multiverse
deb http://it-mirrors.evowise.com/ubuntu/ focal-backports main restricted universe multiverse
deb http://it-mirrors.evowise.com/ubuntu/ focal-security main restricted
deb http://it-mirrors.evowise.com/ubuntu/ focal-security universe
deb http://it-mirrors.evowise.com/ubuntu/ focal-security multiverse

Vedere? Tutti i commenti e le righe vuote sono spariti. Ora l'output è abbastanza leggibile.

Dai un'occhiata al seguente screenshot:

Sul lato sinistro, vedi il contenuto del file con commenti e righe vuote. Sulla destra, tutti i commenti e le righe vuote vengono ignorati con "grep" comando.

Preferisco il modo grep per filtrare le righe non necessarie visualizzate nell'output. Puoi farlo anche usando awk e sed anche i comandi.

Per stampare il contenuto del file escludendo tutti i commenti e le righe vuote con "awk" comando, esegui:

$ awk '$1 ~ /^[^;#]/' /etc/apt/sources.list

Risultato di esempio:

Per visualizzare le righe inizia senza commenti usando "sed" comando, esegui:

$ sed -e '/^#/d' /etc/apt/sources.list

Per maggiori dettagli sull'utilizzo, fare riferimento alla pagina di manuale del rispettivo comando.

$ man awk
$ man grep
$ man sed

Spero che questo aiuti.


Linux
  1. Come archiviare e comprimere file su Linux

  2. Stampa il contenuto del file senza la prima e l'ultima riga?

  3. Crea ed estrai i file tar.gz e tar.bz2 su Ubuntu Linux

  4. Controllo dei repository e della registrazione Linux

  5. Linux Elimina file e directory

Come troncare (svuotare) i file in Linux

Come servire rapidamente file e cartelle su HTTP in Linux

Installa Samba su Ubuntu 20.04 e condividi file su Linux e Windows

Come eliminare le righe vuote nei file utilizzando Grep, Sed e Awk

Trova facilmente file e directory su Linux

Software multimediale Xine:riproduce file audio e video in Ubuntu Linux