次のエイリアスが定義されています~/.bashrc
。
alias fg='find . -name $1 | xargs grep --color $2'
書くために
fg "*.txt" " my_text "
拡張子が.txtで「my_text」を含むすべてのファイルを見つけましたが、うまくいきません。なぜ?
答え1
Bashのエイリアスは(前述のように)パラメータを使用しないため、同様のものが必要な場合(@ l0b0で提供されているような)bash関数を使用できます。
ただし、ここで達成したいことは、grepを使用してより良い方法で行うことができます。
grep -r --color --include="*.txt" " my_text " ./
ところで、fg
これは非常に重要なシェル組み込みコマンドです。エイリアスや関数名として使用しないでください。
編集:機能から
$ ffg() { rgrep --color --include="$1" "$2" ./; }
$ ffg "*.txt" " my_text "
答え2
find ./ -name "$1" -exec grep -l "$2" {} \;
これで問題が解決します。
答え3
動作します!
function fndg()
{
find . -name "$1" | xargs grep -rn --color "$2"
}