Si desea exprimir el "espacio en blanco", querrá usar los juegos de caracteres predefinidos de tr ": blank:" (pestaña y espacio en blanco horizontal) o ": space:" (espacio en blanco vertical):
/bin/echo -e "val1\t\tval2 val3" | tr -s "[:blank:]"
Se ejecutaron ejemplos en Red Hat 5 (GNU tr).
En mi caso, quería normalizar todo el espacio en blanco en un solo espacio para poder confiar en el espacio como emisor.
Como lo señaló el segundo comentario de dastrobu, me perdí la redacción en la página del manual:
-s uses the last specified SET, and occurs after translation or deletion.
Esto nos permite eliminar el primer tr. Kudo debe buscar sus paciencia frente a mi densidad.
Antes, análisis del puerto desde la configuración de Redis. archivo:
grep "^port" $redisconf | tr "[:blank:]" " " | tr -s "[:blank:]" | cut -d" " -f2
Después, con SET2 se especifica con la compresión:
grep "^port" $redisconf | tr -s "[:blank:]" " " | cut -d" " -f2
Salida:
6379
Para más detalles sobre los matices del espacio en blanco
Demuestre dónde solo se produce un apretón cuando intervienen sucesivos caracteres mixtos que entran en la clase de caracteres [: blank:]:
/usr/bin/printf '%s \t %s' id myname | tr -s "[:blank:]" | od -cb
0000000 i d \t m y n a m e
151 144 040 011 040 155 171 156 141 155 145
0000013
Nota: Mis dos campos de cadena en el formato printf están separados por 1 espacio, 1 pestaña, 1 espacio. Después de la compresión, esta secuencia todavía existe. En la salida del volcado Octal, esto se representa mediante la secuencia ascii 040 011 040.