2014-08-27 51 views
-1

從ubuntu移到mac之後,我一直無法生存的命令之一是rgrep。我知道有可能使用grep -r 'term' *,但有沒有一個別名(或更可能是一個函數),可以實現這一點,沒有國旗和*?是否有一個rgrep alias for mac

+0

https://www.google.com/search?q=alias+rgrep – tripleee 2014-08-27 17:58:23

+0

只需將該函數添加到'.bashrc'中即可。 – Barmar 2014-08-27 17:58:52

+2

'rgrep(){grep -r「$ 1」*; }' – 2014-08-27 17:59:18

回答

3

怎麼樣?

function rgrep { 
    first=$1 
    shift 
    grep --color -I -r "$first" * "[email protected]"; 
} 
+0

可能會考慮使用'local first = $ 1'來避免將變量泄露到全局範圍內(以兼容性爲代價 - 「local」關鍵字不在POSIX規範中,儘管大多數最小shell如ash實現它) ,和/或使用'rgrep(){'不帶'function'關鍵字來提高兼容性('function'由更少的本地''shell支持)。 – 2015-03-25 15:02:08

0

將這個成~/.bashrc

alias rgrep='grep -r' 

然後啓動一個新的外殼,看看別名工作。

+1

這不包含問題 – chepner 2014-08-27 18:21:52

+0

@chepner Thx提示的'*'參數。但我沒有得到我在這裏想念的東西。在RedHat系統和rgrep上有這個別名,就像我在Debian上一樣... – hek2mgl 2014-08-27 18:26:34

+0

有了這個,'rgrep'term''會阻塞,等待從標準輸入中讀取。用戶希望作爲'rgrep'的一部分的'*'(作爲文件/目錄的列表進行遞歸),但是對於這個,你需要鍵入'rgrep'term'*'。 – chepner 2014-08-27 18:29:36