我試圖運行此命令(在Mac)...Git Grep =>爲什麼`git grep -h`不能用於Unix管道?
$ git grep -h | grep dir
而是打印包含dir
的線條,它打印的所有文字git grep -h
,並且有效地忽略| grep dir
。
我也試過這個...
$ git grep -h > foo.txt
...它打印它打印git grep -h
所有文本,並創建一個空的文本文件。
這是怎麼回事?
我試圖運行此命令(在Mac)...Git Grep =>爲什麼`git grep -h`不能用於Unix管道?
$ git grep -h | grep dir
而是打印包含dir
的線條,它打印的所有文字git grep -h
,並且有效地忽略| grep dir
。
我也試過這個...
$ git grep -h > foo.txt
...它打印它打印git grep -h
所有文本,並創建一個空的文本文件。
這是怎麼回事?
git grep
需要一個模式來搜索。由於您沒有提供,因此它會在stderr
上顯示幫助(當您管道或重定向stdout
時)。
你需要運行,以實現自己的目標的命令是:
$ git grep -h dir
謝謝。我無法使'git grep -h dir'工作,但你對stderr是正確的。我搜索stderr的答案,發現[這個問題](http://stackoverflow.com/questions/2342826/how-to-pipe-stderr-and-not-stdout),並解決了問題'git grep -h 2 >&1>/dev/null | grep'dir''。 – amorphid
我相信你需要把你的正則表達式的命令後,像這樣:git grep -h dir
然後,你可以把它管道輸出文件或做任何與該數據。
您正在運行命令的不完整,所以'混帳grep'正在寫它的幫助信息到標準錯誤,而不是編寫實際輸出到標準輸出。 – chepner
沒有管道的'git grep -h'和管道一樣。 –