Aqui está um trecho do INPUT:
...
####################
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...
...
E aqui está um trecho da saída que eu preciso:
Bala Bela;XXXXXX12345;XXXXXX12345678;A
4
Ize Jova;XXXXXX12345;XXXXXX12345;A
3
Então, eu preciso de uma saída do INPUT, para que eu possa ver quantas linhas começando com "SERVER" vão para um determinado usuário (por exemplo: "Bala Bela; XXXXXX12345; XXXXXX12345678; A"). Como posso fazer isso no bash?
bash
text-processing
gasko peter
fonte
fonte
Respostas:
O mesmo no perl one-liner
e jogou golfe
fonte
Esta versão conta todas as linhas que não correspondem ao regexp na
grep
linha.Resultado:
Se você deseja apenas contar linhas que começam com 'SERVIDOR', então:
fonte
Resultado:
Se uma contagem prefixada estiver correta:
Resultado:
fonte
Uma
awk
alternativa:Tudo em uma linha:
fonte
Portanto, se a saída já estiver classificada em cada "bloco", você poderá aplicar o uniq diretamente, verificando apenas os primeiros N caracteres:
Aqui está N == 6, pois o SERVIDOR consiste em 6 caracteres desde o início da linha. Você terminará com esta saída (que é um pouco diferente da saída necessária):
fonte