🐧 Как вывести содержимое файлов без комментариев и пустых строк на Linux |

🐧 Как вывести содержимое файлов без комментариев и пустых строк на Linux

Мануал
Когда вы выводите исходный код или содержимое файла конфигурации в стандартный вывод с помощью команды cat, вы видите все в этом файле, включая закомментированные и пустые строки, верно?
Что если вы хотите просматривать только незакомментированные строки, игнорируя все остальные?
Что ж, можно игнорировать закомментированные и пустые строки в выводе на экран.
В этом кратком руководстве мы увидим, как вывести содержимое файлов без комментариев и пустых строк на Linux.
Это может быть очень полезно, если вы хотите быстро просмотреть файл конфигурации, который содержит множество комментариев и пустых строк.

Что такое комментарии в программировании?

Если вы загляните в исходный код или файл конфигурации, вы заметите, что многие строки начинаются со звездочки «*» или хеша «#», косой черты «/» или точки с запятой «;».

Эти строки известны как Комментарии.

В программировании комментарий – это удобочитаемое описание или аннотация, используемая для пояснения целей фрагментов кода.

Они помогают пользователям и другим программистам легко понять, что делает код.

Как правило, комментарии и пустые строки будут игнорироваться компиляторами и интерпретаторами.

Они только для программистов.

Синтаксис комментариев варьируется в зависимости от языка программирования.

Теперь давайте посмотрим, как исключить или пропустить эти комментарии и пустые строки и отображать только те строки, которые не закомментированы.

Вывод содержимого файлов без комментариев и пустых строк на Linux

Позвольте мне показать вам содержимое файла sources.list в одной из моих систем Ubuntu:

$ cat /etc/apt/sources.list

Вывод:

# 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
Вы видите, что многие строки закомментированы символом «#»?
Это делает файл неудобным для чтения.
Этонебольшой файл, так что это не страшно.
Но когда вы читаете очень длинные файлы конфигурации, например, «httpd.conf» или «php.ini», вам придется пройти через множество комментариев и пустых строк, и будет немного сложно найти, какие строки активны, а какие нет.
Чтобы отфильтровать все комментарии и пустые строки от отображения в выводе файла, используйте команду grep, как показано ниже:
$ grep "^[^#*/;]" /etc/apt/sources.list
  • первый символ ^ обозначает начало строки в данном файле, т.е. /etc/apt/sources.list.
  • [^ # * /;] – все строки начинаются с любых символов, кроме этих четырех символов «#», «*», «/», «;». Другими словами, все строки, начинающиеся с символов «#», «*», «/», «;» будут исключены из вывода.

Пример вывода вышеуказанной команды:

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

Все комментарии и пустые строки исчезли.

Теперь вывод вполне читабелен.

Я предпочитаю способом через grep фильтровать ненужные строки, отображаемые в выводе.
Вы также можете сделать это с помощью команд awk и sed.
$ awk '$1 ~ /^[^;#]/' /etc/apt/sources.list

и

$ sed -e '/^#/d' /etc/apt/sources.list
Подробнее об использовании см. На странице руководства соответствующей команды.
$ man awk
$ man grep
$ man sed

 

Пожалуйста, не спамьте и никого не оскорбляйте. Это поле для комментариев, а не спамбокс. Рекламные ссылки не индексируются!
Добавить комментарий