我想在递归目录中的某些文件中找到一个字符串并将其替换为另一个字符串。
我要查找的字符串是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' “这是我的文本文件路径”
但是命令执行成功但文本仍然存在
我阅读了它显示的 sed 手册页
错误 包含值为 0x5C (ASCII `\') 的字节的多字节字符可能被错误地视为
a'',
c'' 和i'' commands. Multibyte characters cannot be used as
delimiters with the
s'' 和 ``y'' 命令的参数中的行继续字符。
BSD 2005 年 5 月 10 日