Si estoy teniendo una línea como:
Thhiisss iisss mmyyy nameeee
Quiero imprimir esto como:
This is my name
¿Cuál es el comando unix para esto?
command-line
text-processing
Krishna
fuente
fuente
Respuestas:
Con
tr
:Explicación: El
-s
cambio detr
"apretar" caracteres de repetición. Como se muestra, el interruptor se puede usar con una variedad de caracteres:a
az
.fuente
En un sistema GNU, deberá usar
sed
o similar si su entorno local utiliza caracteres multibyte ( como sugiere jimmij ) porque GNUtr
solo puede hacer referencia a un carácter por byte. En un escenario ASCII puede eliminar todos los duplicados w /tr
como:Entonces...
...huellas dactilares...
También puedes hacerlo de forma selectiva haciendo referencia a tus objetivos por rango:
...o...
... que resultan ser lo mismo, y que ambos imprimen:
... o uso
[:punct:]
,[:digit:]
,[:lower:]
,[:alpha:]
o lo que le gustaría. También puede negar la selección con-c
......huellas dactilares...
fuente
Unidireccional con
sed
:o incluso más simple:
(gracias Costas y mikeserv por los comentarios).
fuente
sed 's/\(.\)\1\+/\1/g'
Prueba
tr
:fuente