私は(Googleで)私のディレクトリとサブディレクトリのすべてのファイルを置き換えるために完全に機能する次の行を見つけました。
grep -lr previoustext | xargs sed -i 's/previoustext/newtext/g'
良い結果。
しかし、今私のファイルbash_aliases
の関数で次のように使用しようとしています。
freplace() {
grep -lr previoustext | xargs sed -i 's/previoustext/newtext/g';
}
ところで、電話してみます。
freplace previoustext newtext
私の端末では何も起こりません。テキストは置き換えられません。
なぜ動作しないのかご存知ですか?
答え1
パラメータを関数に渡すには、位置パラメータを使用してパラメータを取得する必要があります。
freplace() {
grep -lr "$1" | xargs sed -i "s/$1/$2/g"
}
/
sedまたは他の特殊文字を含む文字列では機能しません。