0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Mac標準のgrepでwarning: recursive search of stdinって言われる

Posted at
  • 環境
    • macOS Mojave バージョン10.14.5
    • grep (BSD grep) 2.5.1-FreeBSD

事象 : grepコマンドを使ったらなんか言われた

現在地のディレクトリにあるファイルからgrepしたかった。
warningだが、grepの結果が返ってこない・・・:sob:
他のところで使っているgrepと同じように使ってしょっちゅう間違えるのでメモ

$ cd {ファイルがあるディレクトリ}
$ grep -irl {探したい文字}
grep: warning: recursive search of stdin

原因 : grep対象のファイルやディレクトリを指定していないから(かもしれない)

mac標準のgrepはなぜかエラーが出るので、brew install grepしてみた - Qiitaの投稿を見て自分と共通点が2つあるのに気がついた。

  1. -rを使っている
  2. 対象のファイルやディレクトリを指定していない

なので試してみる。

$ man grep
# 抜粋
     -R, -r, --recursive
             Recursively search subdirectories listed.
# -rを-Rにしてみたけど結果は同じだった
$ grep -iRl {探したい文字}
grep: warning: recursive search of stdin

# -rを使わないとメッセージは出力されないけどgrepの結果が返ってこない・・・
$ grep -il {探したい文字}

# ディレクトリを指定してみるとうまくいった
$ grep -ril {探したい文字} .
./hoge.md
./.git/index
./fuga.md
./ponsuke.md

対応方法 : 対象のファイルやディレクトリを指定する

# これは見づらい
$ grep -ril {探したい文字} ./
.//hoge.md
.//.git/index
.//fuga.md
.//ponsuke.md
# こうすれば隠しファイル的なものは外される
$ grep -ril {探したい文字} ./*
./hoge.md
./fuga.md
./ponsuke.md
# ファイルを指定した場合 : ファイルの場合は-rlはあんまいらない
$ grep -ril {探したい文字} ponsuke.md 
ponsuke.md
0
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?