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 № 1Sugiero 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