SO に関する他の Q/A を参照して、.bashrc に以下を追加しました。
function findandreplace {
find . -type f -name "$1" -not -path "*/.git/*" -print0 | xargs -0 sed -i 's/$2/$3/g'
}
奇妙なことに、それは何もしません。それを次のように変更すると:
function findandreplace {
echo "find . -type f -name \"$1\" -not -path \"*/.git/*\" -print0 | xargs -0 sed -i 's/$2/$3/g'"
}
私は得る
$ findandreplace "*.cpp" "A.cpp" "B.cpp"
find . -type f -name "*.cpp" -not -path "*/.git/*" -print0 | xargs -0 sed -i 's/A.cpp/B.cpp/g'
予想通り。そのコマンドをコピーして貼り付けると、期待される操作が実行されます。
私の初期機能の何が問題になっていますか?