Uso de la clase de caracteres para formatear una lista de números en formato de código postal

Uso de la clase de caracteres para formatear una lista de números en formato de código postal

Intenté formatear una lista de números en formato de código postal (cinco dígitos). Usé la sedutilidad para hacerlo. Digamos que file.txtcontiene "23232334", "3434654", "33532", "94607". En mi guión, escribí:

sed -n '/^[0-9] [0-9] [0-9] [0-9] [0-9]$/p' file.txt

Pero no funcionó.

yo también lo he probado

sed -n '/^[[:digit:]] [[:digit:]] [[:digit:]] [[:digit:]] [[:digit:]]$/p' file.txt

Según mi comprensión de las clases de personajes, estos pasos deberían funcionar, pero no sé por qué no obtengo ningún resultado.

Por favor ayuda

Gracias

Respuesta1

Hay muchas razones por las que tus comandos no funcionan. En primer lugar, tiene espacios entre números y sedbusca dígitos separados por espacios. En segundo lugar, cuando escribe ^y $requiere que el número de cinco dígitos ocupe toda la línea, de cuatro números en su ejemplo, solo los dos últimos pasarán la prueba. ¿Es eso lo que quieres?

información relacionada