2010-02-24 11:53:58 +0000 2010-02-24 11:53:58 +0000
232
232

¿Cómo puedo hacer coincidir el espacio blanco en el sed?

¿Cómo puedo hacer coincidir el espacio blanco en el sed? En mis datos quiero hacer coincidir todos los 3+ caracteres de espacios en blanco subsiguientes (espacio de tabulación) y reemplazarlos por 2 espacios. ¿Cómo se puede hacer esto?

Respuestas (4)

240
240
240
2010-02-24 12:08:44 +0000

La clase de caracteres \s coincidirá con los espacios en blanco <tab> y <space>.

Por ejemplo:

$ sed -e "s/\s\{3,\}/ /g" inputFile

sustituirá cada secuencia de al menos 3 espacios en blanco por dos espacios.


OBSERVACIÓN: Para el cumplimiento de POSIX, use la clase de caracteres [[:space:]] en lugar de \s, ya que este último es una extensión sed de GNU. Vea las especificaciones POSIX para sed y BREs

70
70
70
2013-08-28 20:28:34 +0000

Esto funciona en MacOS 10.8:

sed -E "s/[[:space:]]+/ /g"
14
14
14
2010-04-07 15:12:34 +0000

Algunas versiones antiguas de la Sed pueden no reconocer las fichas de coincidencia de espacios en blanco. En ese caso, puedes hacer coincidir una secuencia de uno o más espacios y fichas con ‘[XZ][XZ]*’ donde X es un espacio y Z es una ficha.

11
11
11
2014-07-22 14:52:32 +0000
sed 's/[\t]*/"space or tab"/'