by shigemk2

当面は技術的なことしか書かない

grepにおける/dev/nullなど

find -name "*.cpp" | xargs grep 'hoge' - Higepon’s blog

ファイルの中から特定の文字列を検索したいときはこのように書く。

grep 'jquery' test.html

しかし、検索するファイルが1つしない場合、普通はファイル名を表示しない。

<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="jquery-ui-1.8.10.custom.min.js"></script>
<script type="text/javascript" src="jquery.tools.min.js"></script>
<script type="text/javascript" src="jquery.tablesorter.min.js"></script>

これを防ぐために、/dev/nullを書くか、

grep 'jquery' test.html /dev/null

Hオプション(ファイル名を表示するオプション)をつけることが推奨される。

grep -H 'jquery' test.html
test.html:<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
test.html:<script type="text/javascript" src="jquery-ui-1.8.10.custom.min.js"></script>
test.html:<script type="text/javascript" src="jquery.tools.min.js"></script>
test.html:<script type="text/javascript" src="jquery.tablesorter.min.js"></script>

というか、2つ以上ファイルを検索すればファイル名が表示されるので、
別に/dev/nullである必要はなく、適当なファイル(ただし実在するファイル)であれば何でもよい。