我習慣在Linux下搜索特定的關鍵字。使用別名縮短我的命令?
例如,我可以通過
grep -i -r TAIWAN ./ | grep -v".svn"
搜索「TAIWAN」下家。然而,我認爲這是一個有點多餘;我想用一個別名,所以我可以輸入
grep TAIWAN
,然後別名將擴大我的命令到
grep -i -r TAIWAN ./ | grep -v".svn"
我怎麼能做到這一點?
我習慣在Linux下搜索特定的關鍵字。使用別名縮短我的命令?
例如,我可以通過
grep -i -r TAIWAN ./ | grep -v".svn"
搜索「TAIWAN」下家。然而,我認爲這是一個有點多餘;我想用一個別名,所以我可以輸入
grep TAIWAN
,然後別名將擴大我的命令到
grep -i -r TAIWAN ./ | grep -v".svn"
我怎麼能做到這一點?
您將無法與別名做到這一點,但您可以創建一個bash 功能:
mygrep() { grep -i -r $* ./ | grep -v".svn"; }
我不相信別名可以完成你想要什麼,因爲有沒有辦法重新排列參數。製作一個小shell命令更簡單。而不是取代grep
,並因此可能搞砸了預期grep
以某種方式表現的程序,我會給它一個新名稱,如rgrep
。
#!/bin/sh
grep -i -r "[email protected]" | grep -v .svn
把在某處你PATH
如~/bin
並使其可執行文件chmod +x ~/bin/rgrep
。那麼你可以rgrep TAIWAN .
。
不幸的是,這將忽略行其中包含.svn
以及文件。
你可以嘗試修復了grep -v
模式匹配只匹配grep的輸出文件的一部分,或者你可以掀起使用find
代替grep -r
更復雜的命令,也可以使用ACK。
Ack是一個更好的grep,它將避免版本控制目錄以及其他您不關心的常見文件和目錄。它也將自動使用尋呼機併爲輸出着色。