0
我想用模式修改二進制文件。我已經將該文件轉換爲普通的十六進制轉儲文件,其格式爲xxd
(來自軟件包vim)。在純文本文件看起來像這樣(沒有尾隨僅換1號線):RegEx在將所有字符分組爲2時排除集合
$ xxd -ps file.bin | tr -d '\n' | tee out.txt
3a0a5354...
我想刪除匹配\x01[^\xFF]*\xFF
所有模式(一個令牌開一關令牌和他們之間的一切,除了另一收盤令牌)在原始文件,但是sed
不能這樣工作。
例輸入和所需的匹配:
020202020101010101feeffeefff0000...
~~~~~~~~~~~~~~~~~~~~
而且我想這樣做:
sed 's/regex//g' in.file > out.file
現在我想匹配所有chatacters 2×2同時排除ff
。有任何想法嗎?
您能否提供一些示例輸入和輸出? 'xxd'(如'hd')輸出在其輸出中具有定位元數據。 「sed」在這方面不會非常好。 Perl如何? 'perl -pe's/\ xff'//^ –
@AdamKatz我使用了選項'-ps'作爲xxd – iBug
太棒了。我們仍然需要示例輸入和輸出來知道你想要做什麼。你似乎在尋找與字符代碼相關的匹配正則表達式[/ x01 [^ \ xFF] * \ xFF'](https://regex101.com/r/Ts0QpE/1)的模式,但是隨後你會完全描述與十六進制對有關的不同正則表達式,這可能會滿足['(?:..)*?(?!ff)(..)'](https://regex101.com/r/Ts0QpE/2)。 –