Número de ocorrências em um arquivo de texto em que o primeiro caractere após o 12º pipe é igual a 1?

1

Eu sou relativamente novo em expressões regulares e estou procurando por um comando sed / awk / grep / wc para encontrar o seguinte em um arquivo de texto delimitado por pipe, o número de ocorrências do dígito 1 após o 12º canal.

Aqui está um exemplo do arquivo de texto:

2|JOHN||HAY||2955|ROSE|ST|#39D|Tool|TX|769065589|2542444320|||2222299310|SSD||01/08/2014^M
8|ALEN|BOBRISE|FITZGERALD||5432|Red|Ave|Apt 253|Bloomington|MN|559322972||9582544754|||MINNESOTA JIL|MN|01/08/2014^M

Minha preferência é sed ou wc, já que é com isso que eu estou mais familiarizado, mas vou pegar o que puder.

    
por AN6U5 31.12.2015 / 21:42

3 respostas

4

Eu usaria cut

cat myfile.txt | cut -d '|' -f 12 | grep -c 1
    
por 31.12.2015 / 21:50
4

com awk :

awk -F'|' '$13 ~ /^1/{count++} END{print count}'
    
por 31.12.2015 / 21:50
2

Opção única grep com -P erl compatível:

grep -Pc '^([^\|]*\|){12}\K1' file
    
por 31.12.2015 / 22:19