前書き 僕が正規表現をよく使うのは、vimで文字列の検索や置換をするときですが、たまにシェルスクリプトの中で使いたくなることがあります。そういう時普通はperlで書くのでしょうが、あいにく僕はperlがつかえない(orz)ので、毎回edやらgrepやらsedやらawkやらを調べて場当たり的に解決しています。で、この前、後輩に質問されて「う、こんな簡単なことなのにどうやったらいいのか分らないなんて!」とショックを受けたことがあったので、調査結果をメモっておきます。 問題 データを行毎に記録したテキストファイル(例:data.txt)がある。そのテキストファイルを1行ずつ読み取って、コマンドを実行したい。ただし、#で始まる行や空行は無視したい。 解答 exprコマンドは、正規表現を解釈する(!)ので、それを使う。 #!/bin/sh TARGET_FILE="data.txt" whil
![bashスクリプトで正規表現 - るーのプログラミング](https://cdn-ak-scissors.b.st-hatena.com/image/square/aff362fd6e62f9c90c92910e112a3dc3301f2c18/height=288;version=1;width=512/http%3A%2F%2Flucy.moe-nifty.com%2F.shared-cocolog%2Fnifty_managed%2Fimages%2Fweb%2Fogp%2Fdefault.png)