我在.bashrc中有這樣的命令沒有得到結果與find命令定製別名在Linux
mygrep() {
find /var/www/site1 -exec grep -Hn "$1" {} \;
}
但有時它不是returing結果
但這個命令返回全部結果
grep -r "serch term" /var/www/site1
以上功能有什麼問題
我在.bashrc中有這樣的命令沒有得到結果與find命令定製別名在Linux
mygrep() {
find /var/www/site1 -exec grep -Hn "$1" {} \;
}
但有時它不是returing結果
但這個命令返回全部結果
grep -r "serch term" /var/www/site1
以上功能有什麼問題
當你的功能沒有問題時un在我的Linux機器上。要使結果看起來完全相同,請將-n
選項添加到grep調用:grep -rn "serch term" /var/www/site1
。
這就是我所做的這兩個命令的輸出比較上飛(在bash):
diff <(grep -rn ast /var/www/site1) <(mygrep ast)
我曾嘗試過,但仍然有許多關鍵字不在mygrep中,而是在grep中。我在該文件夾中有很多子目錄。這就是原因。可能會發現不會在那些直接的節目中進行。我如何調試 – user825904
在更復雜的目錄樹上重新運行我的測試仍然沒有顯示出差異。你在使用find和grep的GNU實現嗎?我的'find'來自GNU findutils 4.4.2,我的'grep'是GNU grep 2.9。在某些情況下,find和grep的其他實現可能會有不同的表現。 –
我看不出有什麼差別。爲什麼不將-type f添加到您的查找中?你的grep是別名嗎? – MeaCulpa
不,grep不是別名。我會嘗試-type f – user825904
我發現如果我使用普通的grep,那麼它甚至在字符串內搜索模式,就好像它會選擇'master',如果我搜索'ast',但是我的自定義find命令只能找到'master'而不是' ast'作爲匹配 – user825904