我想在遞歸目錄中的某些文件中找到一個字符串,並將其替換爲另一個字符串。Grep和Sed錯誤
我想查找的字符串是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
但我試過這T OO 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日
向我們展示您嘗試的命令並用一些示例解釋您的問題。 – anubhava
你在什麼操作系統上?您需要提供_some_信息。它是一個二進制文件,還是你正在通過文本十六進制轉儲?如果你想操縱一個二進制文件,sed和grep可能不會這樣做。 Awk不能。 Perl或其他腳本語言可以。如果你有一個二進制文件,並想獲得十六進制轉儲,找到它,做替換,並將結果轉換回二進制文件,這可以工作。但是你可能會比它需要的更難。 –
Mac OS X 10.8.5 我不知道如何獲得Hext轉儲? –