Grep regex cómo

Grep regex cómo

Hola tengo un archivo con códigos postales de 5 dígitos.

Estoy intentando usar grep para imprimir los códigos postales que comienzan con 9 y solo pueden contener dígitos entre 4 y 7.

El comando que estoy usando es

grep '[4-7], 9'$ zipcodesDataEntry.cvs

El problema es que obtengo códigos postales que tienen los dígitos 1 2 3 8. Mi salida debería ser:

95544
94554
94445
95567

Sin embargo, obtengo algunos códigos postales como:

91121
92231 

Estoy intentando excluir cualquier número que no sea 9 y esté en el rango de 4 a 7.

Respuesta1

Dado este archivo:

cat zipcodes 
95544 94554 94445 92231 95567 91121

Puedo usar este grep:

egrep -o '9[4-7]{4}' zipcodes 
95544
94554
94445
95567

Respuesta2

Contenido del archivo de entrada:

95544 
94554 
94445 
95567
91121 
92231

Usando awk(en caso de que egrepno esté disponible), puedes probar algo como esto:

awk '/9[4-7]{4}/' zip.txt

Salida:

95544 
94554 
94445 
95567

Respuesta3

grep '^9.[4-7].*' códigos postalesDataEntry.cvs

  1. ^ El comienzo de la cadena que se compara.
  2. . (Punto) coincide con cualquier carácter
  3. asterisco, cero o más

información relacionada