sustituir - Reemplazo de cadena hexagonal usando sed
sed reemplazar/ (2)
Esto me funcionó en Linux y OSX.
Reemplazo en el lugar:
sed -i ''.bk'' ''s''/`printf "/x03"`''/foo/g'' index.html
(Ver el comentario de @Ernest en la respuesta por @tolitius)
Estoy teniendo algunos problemas para encontrar / reemplazar algunos caracteres hexadecimales. Quiero reemplazar todas las instancias dentro de un archivo de la siguiente cadena hexadecimal:
0x0D4D5348
Con la siguiente cadena hexadecimal:
0x0D0A4D5348
¿Cómo puedo hacer eso?
EDITAR: Estoy tratando de hacer un hex buscar / reemplazar. El archivo de entrada no tiene el valor literal de "0x0D4D5348" en él, pero sí tiene la representación ASCII de eso.
GNU sed v3.02.80, GNU sed v1.03 y HHsed v1.5 por Howard Helman son compatibles con la notación /xNN
, donde "NN" son dos números hexadecimales válidos, 00-FF.
Aquí es cómo reemplazar una secuencia HEX en su archivo binario:
$ sed ''s//x0D/x4D/x53/x48//x0D/x0A/x4D/x53/x48/g'' file > temp; rm file; mv temp file
Como señaló @sputnik, puedes usar la funcionalidad de sed in place
. Una advertencia, sin embargo, si lo usa en OS / X, tendría que agregar un conjunto de citas vacío:
$ sed '''' ''s//x0D/x4D/x53/x48//x0D/x0A/x4D/x53/x48/g'' file
Como está in place
en OS / X, toma un parámetro para indicar qué extensión agregar al nombre del archivo al hacer una copia de seguridad, ya que primero crea un archivo temporal. Pero entonces ... sed
OS / X no soporta /x
.