GNU/Linux >> Linux の 問題 >  >> 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
  • [^#*/;] -これらの4文字以外の文字で始まるすべての行を表示します"#""*""/"";" 。つまり、"#"の文字で始まるすべての行 、"*""/"";" 出力から除外されます。

上記のコマンドの出力例:

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"で無視されます コマンド。

出力に表示されている不要な行をフィルタリングするgrepの方法が好きです。 awkを使用してそれを行うこともできます およびsed コマンドも。

"awk"を使用してすべてのコメントと空の行を除くファイルの内容を印刷するには コマンド、実行:

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

出力例:

"sed"を使用して、コメントなしで行を表示するには コマンド、実行:

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

使用法の詳細については、それぞれのコマンドのマニュアルページを参照してください。

$ man awk
$ man grep
$ man sed

これがお役に立てば幸いです。


Linux
  1. Linuxでmvなしでファイルを移動する

  2. Linuxでコメントなしで設定ファイルを表示する方法

  3. Linuxでファイルをアーカイブおよび圧縮する方法

  1. 最初と最後の行なしでファイルコンテンツを印刷しますか?

  2. Linux – Unix / linux Osesの標準および/または共通ディレクトリ?

  3. ubuntulinuxでtar.gzファイルとtar.bz2ファイルを作成して抽出します

  1. Linuxリポジトリとロギングの確認

  2. Linux ファイルとディレクトリの削除

  3. Linux で空のディレクトリとファイルを見つけて削除する方法