0

私は Linux で特定のキーワードを検索することに慣れています。

たとえば、ホームで「台湾」を検索するには、

grep -i -r TAIWAN ./ | grep -v".svn" 

ただし、これは少し冗長だと思いました。入力できるようにエイリアスを使用したい

grep TAIWAN

そして、エイリアスは私のコマンドを次のように展開します

grep -i -r TAIWAN ./ | grep -v".svn" 

どうすればこれを達成できますか?

4

2 に答える 2

4

エイリアスを使用することはできませんが、bash関数を作成することはできます。

mygrep () { grep -i -r $* ./ | grep -v".svn"; }
于 2012-08-14T02:11:30.677 に答える
2

引数を並べ替える方法がないため、エイリアスが目的を達成できるとは思いません。小さなシェル コマンドを作成する方が簡単です。を置き換えるのではなく、特定の方法で動作することgrepを期待するプログラムを台無しにする可能性があるため、 .greprgrep

#!/bin/sh

grep -i -r "$@" | grep -v .svn

PATHそれをなどのどこかに置き、~/binで実行可能にしchmod +x ~/bin/rgrepます。その後、できますrgrep TAIWAN .

残念ながら、これはファイルと同様に含むを無視します。.svn

grep -vgrep 出力のファイル部分のみに一致するようにパターン マッチを修正することも、...findの代わりに使用してより複雑なコマンドを作成grep -rすることも、ack を使用することもできます。

Ackはより優れた grep であり、バージョン管理ディレクトリやその他の一般的なファイルや、気にしないディレクトリを回避します。また、ページャーを自動的に使用し、出力に色を付けます。

于 2012-08-14T02:14:31.113 に答える