GNU/Linux >> Znalost Linux >  >> Linux

Tisk souborů bez komentářů a prázdných řádků v Linuxu

Když zobrazíte zdrojový kód nebo obsah konfiguračního souboru ve standardním výstupu pomocí cat příkaz, uvidíte vše v tom souboru včetně komentovaných a prázdných řádků, že? Ano. Co když chcete zobrazit pouze nekomentované řádky a všechny ostatní ignorovat? No, je možné ignorovat komentované a prázdné řádky z výstupu souboru. V tomto krátkém návodu uvidíme, jak tisknout soubory bez komentářů a prázdných řádků v Linuxu. To může být užitečné, když chcete rychle zkontrolovat konfigurační soubor, který obsahuje spoustu komentářů a prázdných řádků.

Co jsou komentáře v počítačovém programování?

Pokud se podíváte do zdrojového kódu nebo konfiguračního souboru, všimnete si, že mnoho řádků začíná buď hvězdičkou "*" nebo hash "#" nebo lomítko "/" nebo středník ";" . Tyto řádky jsou známé jako Komentáře . V počítačovém programování je komentář člověkem čitelný popis nebo anotace používaná k objasnění účelu kódu. Pomáhají uživatelům a dalším programátorům snadno pochopit, co kód dělá. Obecně budou komentáře a prázdné řádky kompilátory a interprety ignorovány. Jsou pouze pro programátory. Syntaxe komentářů se v různých programovacích jazycích liší.

Nyní se podívejme, jak vyloučit nebo přeskočit tyto komentáře a prázdné řádky a zobrazit pouze řádky, které nejsou komentovány.

Tisk souborů bez komentářů a prázdných řádků v Linuxu

Dovolte mi ukázat vám obsah sources.list soubor mého systému Ubuntu:

$ cat /etc/apt/sources.list

Ukázkový výstup:

# 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

Viděli jste, že mnoho řádků je zakomentováno znakem „#“? Díky tomu je soubor méně čitelný. Toto je jen malý soubor, takže to není velký problém. Ale když čtete opravdu dlouhé konfigurační soubory, například "httpd.conf" nebo "php.ini", budete muset procházet spoustou komentářů a prázdných řádků a je trochu matoucí najít, které řádky jsou aktivní a které nejsou.

Chcete-li odfiltrovat zobrazení všech komentářů a prázdných řádků ve výstupu souboru, použijte grep příkaz jako níže:

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

Tady,

  • první ^ znak označuje začátek řádku v daném souboru, tj. /etc/apt/sources.list .
  • [^#*/;] - zobrazí všechny řádky začínající jinými znaky než těmito čtyřmi znaky "#" , "*" , "/" , ";" . Jinými slovy, všechny řádky začínající znaky "#" , "*" , "/" , ";" bude z výstupu vyloučen.

Ukázkový výstup výše uvedeného příkazu:

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

Vidět? Všechny komentáře a prázdné řádky jsou pryč. Nyní je výstup docela čitelný.

Podívejte se na následující snímek obrazovky:

Na levé straně vidíte obsah souboru s komentáři a prázdnými řádky. Vpravo jsou všechny komentáře a prázdné řádky ignorovány pomocí "grep" příkaz.

Dávám přednost způsobu grep, jak filtrovat nepotřebné řádky zobrazené ve výstupu. Můžete to udělat také pomocí awk a sed také příkazy.

Chcete-li vytisknout obsah souboru s výjimkou všech komentářů a prázdných řádků pomocí "awk" příkaz, spusťte:

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

Ukázkový výstup:

Zobrazení řádků začíná bez komentáře pomocí "sed" příkaz, spusťte:

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

Další podrobnosti o použití naleznete na manuálové stránce příslušného příkazu.

$ man awk
$ man grep
$ man sed

Doufám, že to pomůže.


Linux
  1. Jak archivovat a komprimovat soubory na Linuxu

  2. Vytisknout obsah souboru bez prvního a posledního řádku?

  3. Linux – standardní a/nebo společné adresáře na operačních systémech Unix/linux?

  1. Přesouvání souborů na Linuxu bez mv

  2. Jak zobrazit konfigurační soubory bez komentářů v Linuxu

  3. Vytvářejte a extrahujte soubory tar.gz a tar.bz2 na ubuntu linux

  1. Kontrola linuxových úložišť a protokolování

  2. Linux Odstraňte soubory a adresáře

  3. Jak najít a odstranit prázdné adresáře a soubory v Linuxu