¿Cuál es el sed
encantamiento para eliminar bytes nulos de un archivo? Lo estoy intentando:
s/\000//g
pero eso es eliminar cadenas de ceros.
s/\x00//g
Parece no tener efecto. Estoy tratando de hacer esto en un sed
script, así que no estoy seguro de que el echo
truco funcione.
-i
parámetro para convertir el archivo en su lugar.tr
tropecé con algunos otros bytes en mi archivo ysed
no reemplacé nada. Terminé haciéndolo nosed
en Python:Aquí hay una línea de tubería :
También noté que algunos comandos realmente dejan los bytes nulos allí, pero ya no son visibles, al menos no en un terminal OSX. Solía
hexdump
depurar esto.fuente
Es bastante fácil usar Perl para realizar una expresión regular. Simplemente reemplace
sed
conperl -np -e
:Con la
-n
opción, las expresiones regulares se ejecutan línea por línea, al igual que sed.Si desea utilizar cero bytes como separadores de registros, use la
-0
opción de Perl .Puede buscar las opciones de línea de comandos de Perl ejecutando
perldoc perlrun
.fuente
Para hacer coincidir un byte nulo, uso esta expresión regular con SED de Cygwin:
fuente