2017年8月20日日曜日

Linuxの設定ファイルの#から始まるコメント行を消して設定値だけ表示する

Linuxの設定ファイルは、コメント行として#から始まる行が多数記載されている。設定値の意味が記載されており、あれば便利なものではあるが、実際に設定した内容の確認の際には視認性が悪くなるため、邪魔になることも多い。

というわけで、grepでコメント行を消すことを試してみた。

コメント行を消す方法

例として以下のようなテキストファイルを用意してみた。

$ cat test.txt
------------------------------
# comment1

test # comment2


test "####"


 # comment3

  # comment4
   # comment5
------------------------------

コメント行を削除するには以下の通りgrepする。

$ cat test.txt | grep -v '^ *#'
------------------------------

test # comment2

test "####"

------------------------------

さらに空白行も消したい場合は、以下の通りとなる。通常使う場合は、空白行も消した方が視認性がよいのでお勧め。

$ cat test.txt | grep -v -e '^ *#' -e '^$'
------------------------------
test # comment2
test "####"
------------------------------

catを使わず以下の記述でもOK。

$ grep -v '^ *#' test.txt
$ grep -v -e '^ *#' -e '^$' test.txt

エイリアスを作っておく

便利なコマンドなのでエイリアスを登録してすぐに使えるようにしておく。~/.bashrcに以下行を追記すればよい。エイリアスの名前は任意だが、コメント(comment)を取って表示する(cat)ということで、「ccat」としてみた(実際はcatは表示するという意味ではないが)。

alias ccat="grep -v -e '^ *#' -e '^$'"

~/.bashrcの記載方法について補足となるが、UbuntuやRaspbianのようなDebian系のLinuxでは、~/.bashrcを覗くと以下のような記載になっていた。

------------------------------
# Alias definitions.
# You may want to put all your additions into a separate file like
# ~/.bash_aliases, instead of adding them here directly.
# See /usr/share/doc/bash-doc/examples in the bash-doc package.

if [ -f ~/.bash_aliases ]; then
    . ~/.bash_aliases
fi
------------------------------

どうやら「~/.bash_aliases」のファイルを作成して、そこにエイリアスを書け、ということらしい。郷に入っては郷に従えということで、そのように対応した。

$ cat ~/.bash_aliases
------------------------------
alias ccat="grep -v -e '^ *#' -e '^$'"
------------------------------

参考

みんな考えていることは同じだった。

https://www.google.co.jp/search?q=grep+%E3%82%B3%E3%83%A1%E3%83%B3%E3%83%88

0 件のコメント:

コメントを投稿

人気の投稿