awk 演習: # で始まる行を無視する2008年12月27日 13時48分05秒

とても典型的な例。

% awk '$0 !~ /^#/{print $0}' input.txt

!~ 演算子を用いて、# から始まらない行を出力する。

# はシェルを始めとして、プログラムには無効なコメントとして使われることが多いので、自前で作ったプログラムでもその風習に従うことが多い。他の人の書いたシェルスクリプトを見ると、grep -v # で一度、コメント行を取り除いた後に、更に sed や grep、また cut や read などのコマンドを用いて、一生懸命に入力を処理する人達が多い。

必要な値を取り出すのに、いくつもの grep や sed を通してやっと手にいれている、力業しか出来ない人が多すぎる。この様な処理も、awk でやると無駄なプロセスの生成を押えつつ、圧倒的に簡潔に処理できる事が多い。

この、# で始まる行を無視するのは、こういった処理を始める時の定型分となる。なお、そのような場合は、以下の様に next と組み合わせると見やすい。


/^#/{next}
PATTERN{ACTION}

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2008/12/27/4029056/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。