Aquí hay un fragmento de la ENTRADA:
...
####################
Bala Bela;XXXXXX12345;XXXXXX12345678;A
SERVER345Z3.DOMAIN.com0
SERVER346Z3.DOMAIN.com0
SERVER347Z3.DOMAIN.com0
SERVER348Z3.DOMAIN.com0
ssh-dss ...pubkeyhere...
####################
Ize Jova;XXXXXX12345;XXXXXX12345;A
SERVER342Z3.DOMAIN.com0
SERVER343Z3.DOMAIN.com0
SERVER345Z3.DOMAIN.com0
ssh-rsa ...pubkeyhere...
...
Y aquí hay un fragmento de la SALIDA que necesito:
Bala Bela;XXXXXX12345;XXXXXX12345678;A
4
Ize Jova;XXXXXX12345;XXXXXX12345;A
3
Por lo tanto, necesito una SALIDA de la ENTRADA, para poder ver cuántas filas que comienzan con "SERVIDOR" van al usuario dado (por ejemplo: "Bala Bela; XXXXXX12345; XXXXXX12345678; A"). ¿Cómo puedo hacer esto en bash?
bash
text-processing
Gasko Peter
fuente
fuente
Respuestas:
Lo mismo en perl one-liner
y golf
fuente
Esta versión cuenta todas las filas que no coinciden con la expresión regular en la
grep
línea.Salida:
Si solo desea contar las líneas que comienzan con 'SERVIDOR', entonces:
fuente
Salida:
Si un recuento prefijado está bien:
Salida:
fuente
Una
awk
alternativa:Todo en una línea:
fuente
Entonces, si la salida ya está ordenada en cada "depósito", podría aplicar directamente uniq marcando solo los primeros N caracteres:
Aquí hay N == 6 ya que SERVER consta de 6 caracteres desde el principio de la línea. Terminará con esta salida (que es un poco diferente de la salida requerida):
fuente