例:
入力する:
0x12345678 0aef1234 0098adefa 123456789
予想出力:
0x00000000 00000000 0098adefa 123456789
これを試しました:
sed -E "s/[0-9a-fA-F]{8}/00000000/g"
ただし、16進数が8個以上連続しても置換されます。
ベストアンサー1
単語の境界を使用して単語の始まりまたは終わりを表示することができ、数字の前に来ることもできることを検討し\b
てください。0x
sed -E 's/\b(0x|)[0-9a-fA-F]{8}\b/\100000000/g'
それでもいくつかの特別なケースがあるので、これを処理する方法を検討する必要があります。たとえば、00x12345678
上記のパターンでは置き換えられません。