Mac 표준의 grep에서 warning: recursive search of stdin

2896 단어 grepMac
  • 환경
  • macOS Mojave 버전 10.14.5
  • grep (BSD grep) 2.5.1-FreeBSD


  • 이벤트 : grep 명령을 사용하면 뭔가 말했다.



    현재 위치의 디렉토리에있는 파일에서 grep하고 싶었습니다.
    warning이지만 grep의 결과가 반환되지 않습니다 ...
    다른 곳에서 사용하고 있는 grep과 같이 사용해 뭘 잘못하기 때문에 메모
    $ cd {ファイルがあるディレクトリ}
    $ grep -irl {探したい文字}
    grep: warning: recursive search of stdin
    
    

    원인 : grep 대상의 파일이나 디렉토리를 지정하고 있지 않기 (일지도 모른다)



    mac 표준 grep은 왠지 오류가 발생하기 때문에 brew install grep 해 보았습니다 - Qiita 의 투고를 보고 자신과 공통점이 2개 있는 것을 깨달았다.
  • -r 사용
  • 대상 파일이나 디렉토리를 지정하지 않습니다

  • 그래서 시도해 보자.
    $ 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
    

    좋은 웹페이지 즐겨찾기