を-exec使用して、私は基本的に再帰的grepの文ですbashrcに機能RGを、書いた:は、Cygwinのではbashrcに関数からの出力に
rg() {
find . -type f -exec grep -il $1 {} \;
}
これはうまく動作しますが、今は上に追加のgrepを実行する必要があります各出力行は別の単語をチェックします。私は基本的に両方の単語を含む各ファイルをリストしたい(必ずしも同じ行にあるとは限りません)。私はこのコマンドを試しました:
rg Word1 -exec grep -il Word2 {} \;
これは単に "Word1"を含む同じファイルを出力するようです。
私はこの次のコマンドを試したところ、 "Ha"を各行に出力したと思っていましたが、 "rg Word1"ステートメントからファイルをリストし続けています。
rg Word1 -exec echo "Ha" \;
ここで私は明らかに何か間違っています。誰も私の混乱をクリアすることはできますか?私はgrepの中でこれを行う方法があることを知っていますが、それは1行単位で動作するようです。私がやっていることはかなり一般的だと思います。また、私は一度これを働かせて、私は便宜のために別のbashrc関数に入れたいと思います。それがより複雑になるかどうかは分かりません。
あなたは '-exec grep -il Word2 {} \;'を引数として 'rg'に渡しますが、関数内のどこにもそれらを使用していないので、効果はありません –
したがって、 'findを実行する。 '$ 1'としての' '$ 1''は' 'Word1''です。 – 123
"-exec grep"をrgの引数にしない方法がありますか?このような関数でexecを使うことは可能ですか? – Zip184