how examples linux bash shell sed

linux - examples - Reemplazo del personaje de control en sed



sed command examples (5)

Necesito reemplazar todas las apariciones del carácter de control CTRL + A (SOH / ascii 1) en un archivo de texto en Linux, ¿cómo se puede lograr esto en SED?


¿Con qué quieres reemplazarlos? Si el reemplazo es un solo carácter, tr es una mejor opción que sed . Para reemplazar con la letra ''a'':

tr ''/1'' a < input-file > tmp && mv tmp input-file


Al "reemplazar", asumo que desea cambiar el archivo ''en el lugar''.

Usando GNU sed:

# Create a file with a single control character (SOH) echo -e "/x01" > file # Change SOH control characters to the literal string "SOH" sed -i ''s//x01/SOH/g'' file # Check result cat file

da...

SOH

La opción -i no funciona en OS X sed, por lo que tendría que solucionarlo colocando un archivo temporal.


Esto se puede hacer a través de cat con la opción -v (equivalentemente --show-nonprinting opciones y canalizando esto a sed ).

Si el carácter de control es el carácter de inicio de encabezado (SOH) (CTRL + A / ASCII 1) y queremos reemplazarlo con una pestaña, haremos lo siguiente:

cat -v file | sed ''s//^A//t/g'' > out

cat -v reemplazaría el carácter SOH con ^ A, que luego se emparejaría y reemplazaría en sed .


Puedes usar el comando tr

tr -s ''/ 001'' ''|'' archivo nuevo

tr -s "palabra o delimitador" desea reemplazarlo con "palabra o delimitador" newfile


Tratar:

sed ''s/^A/foo/g'' file

Use Ctrl + V + A para crear la secuencia ^A en el comando anterior.