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
これがお役に立てば幸いです。