/ / Eliminación de caracteres de punto de viñeta de un archivo de texto con sed - regex, bash, sed

Eliminar caracteres de viñeta del archivo de texto con sed - regex, bash, sed

Tengo un archivo de texto grande en el que algunas líneas comienzan con una viñeta (•). Me gustaría quitar esos. He intentado

sed "s/u2022//g" filename.txt

pero eso no coincide con las balas. También he intentado pegar la bala en mi comando sed, pero también sin éxito.

E: La salida de

sed --version

es

sed (GNU sed) 4.2.2

E2: si ayuda a descubrir cómo capturar los caracteres con viñetas, se agregaron originalmente en Access.

E3: Como sugiere en los comentarios,

echo -n "•" | hexdump -C

devoluciones

00000000  95                                                |.|
00000001

Respuestas

2 para la respuesta № 1

Sugiero con GNU sed:

sed "s/xe2x80xa2//g" file

Actualizar:

sed "s/x95//g" file

2 para la respuesta № 2

Este es un comando de trabajo para mí:

# Force paste the bullet into the command line
sed "s/^•//g" filename.txt

Si no funciona, intente escapar con echo:

sed "s/^""$(echo -ne "u2022")""//g" filename.txt

Como PesaThe sugiere, también puedes usar printf para escapar:

sed "s/^""$(printf "u2022")""//g" filename.txt

0 para la respuesta № 3

Parece que sed no entiende u secuencias De acuerdo con el manual del usuario, debería ser compatible con POSIX.2 BRE, lo cual creo que debería funcionar, pero no funciona.

Puedes intentar capturar la secuencia hexadecimal (que obtuve usando hexdump -C)

sed  "s/^xe2x80xa2//g" filename.txt

O, alternativamente, podrías forzar bash para analizarlo Sólo agrega un $ antes de la cuerda.

sed $"s/u2022//g" filename.txt