再帰ディレクトリ内のいくつかのファイルで文字列を見つけて、別の文字列に置き換えたいです。
探したい文字列は0x04030000&0xffff0000
.
置き換えたい文字列は0x80863a30
.
いくつかの例を試しましたがgrep
、sed
いくつかのエラーが発生しました。
grep
言うように0xffff0000 command not found
Mac OS X 10.8.5 を使用しています
これは私が試したコマンドであり、受け取ったエラーです:
localhost:~ User$ grep -rl 0x04030000&0xffff0000 /Users/Niresh/Desktop/TTT | xargs sed -i 's/0x04030000&0xffff0000/0x80863a30/g'
[4] 1166
-bash: 0xffff0000: command not found
grep: warning: recursive search of stdin
[4]+ Stopped grep -rl 0x04030000
このコマンドも試しましたが、機能しません
localhost:~ Niresh$ mkdir TTT
localhost:~ Niresh$ echo "TTT 0x04030000&0xffff0000 bar" > TTT/bar
localhost:~ Niresh$ find TTT -type f -exec sed -i'' -e 's/0x04030000&0xffff0000/0x80863a30/g' {} \;
localhost:~ Niresh$ cat TTT/bar
TTT 0x80863a30 bar
localhost:~ Niresh$ TTT 0x80863a30 bar
-bash: TTT: command not found
sed -i'' -e 's/0x04030000&0xffff0000/0x80863a30/g' "Here Was My Path to The Text File"
しかし、コマンドは正常に実行されますが、テキストはまだ残っています
sed It Showsのマニュアルページを読みました
a'',
バグ 値が 0x5C (ASCII `\') のバイトを含むマルチバイト文字は、 c'' およびi'' commands. Multibyte characters cannot be used as
delimiters with the
s'' および ``y'' コマンドへの引数で行継続文字として誤って扱われる場合があり
ます。
BSD 2005 年 5 月 10 日