それマグで!

知識はカップより、マグでゆっくり頂きます。 takuya_1stのブログ

習慣に早くから配慮した者は、 おそらく人生の実りも大きい。

Grep結果に行番号を表示する

Grep をすると、ファイル名の他に、行番号が欲しいときがあります。

-n オプションをつければ行番号がでてくる。

           grep  -n KEYWORD または grep  --line-number KEYWORD
man(マニュアルの解説)

-n, --line-number
各出力行の前に、入力ファイルにおける行番号を表示します。

簡単に行番号が付いてきます。便利です。

いつでも行番号

常に行番号を表示するには alias を遣います

alias grep="grep -n --color=auto "

これを.bashrcに追記しましょう

ファイルの中から<?phpを検索した例

takuya@pc192168095097:~/pne/apps/pc_frontend/templates$ grep "<?php" _layout.php  -n |  head -n 5
4:<?php include_http_metas() ?>
5:<?php include_metas() ?>
6:<title><?php echo ($op_config['sns_title']) ? $op_config['sns_title'] : $op_config['sns_name'] ?></title>
7:<?php include_stylesheets() ?>
8:<?php include_javascripts() ?>

ディレクトリ以下から探した例

よく使うのが以下の例です。ディレクトリ以下のなかで、関数を探しています。これで関数の使用例や使用場所を探すことが多いです。私は、変数の宣言箇所・利用場所を検索しています。ctagsにも限界があるのでよくつかいます。

grep -n オプションをつける前
takuya@magi:~/pne/lib/controller$ grep genUrl  ./ -R
./opMobileFrontWebController.class.php:  public function genUrl($parameters = array(), $absolute = false)
./opMobileFrontWebController.class.php:      return parent::genUrl($parameters, $absolute);
./opMobileFrontWebController.class.php:    $url = parent::genUrl($parameters, $absolute);
./opMobileFrontWebController.class.php:    $url = $this->genUrl($url, true);
grep -n オプションつけた後
takuya@magi:~/pne/lib/controller$ grep genUrl  ./ -R -n
./opMobileFrontWebController.class.php:23:  public function genUrl($parameters = array(), $absolute = false)
./opMobileFrontWebController.class.php:27:      return parent::genUrl($parameters, $absolute);
./opMobileFrontWebController.class.php:45:    $url = parent::genUrl($parameters, $absolute);
./opMobileFrontWebController.class.php:71:    $url = $this->genUrl($url, true);
takuya@magi:~/pne/lib/controller$
2018-07-31

関連資料

grep で行番号よりnlで行番号を調べることが多いので

nl で空行(empty line) を表示する - それマグで!