というわけで、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 件のコメント:
コメントを投稿