.sh script para contar o número de nomes em uma categoria em um .csv

0

Eu gostaria de contar o número de alunos em um arquivo .csv dependendo da categoria

Categoria 1 é o nome, categoria 2 é o país, categoria 3 é a cidade

O arquivo .csv é exibido como tal:

michael_s;jpa;NYC
john_d;chn;TXS
jim_h;usa;POP

Quando executo o script como

cat students.csv | ./script.sh PAR

Ele deve exibir apenas o número de alunos em PAR, mas também quando executo o script, ele também pode exibir outras cidades, como NYC, PAR, etc.

O que eu fiz:

cut -d";" -f3 students.csv | sort | uniq -c 

Funciona como participado, mas eu preciso que ele exiba outras cidades também ao executar o script com outra cidade depois dele

cat students.csv | ./script.sh PAR

133 NYC

ou

cat students.csv | ./script.sh NYC

107 NYC
    
por Alan 17.04.2018 / 11:48

1 resposta

1

Por que não fazer isso ...

cat students.csv | grep $1 |wc -l

Isso poderia entrar em um script e ser executado como:

./myscript.sh NYC

Seu script inteiro se pareceria com:

#/bin/bash
cat students.csv | grep $1 |wc -l

Para obter o nome da cidade na linha com a contagem, você pode usar:

cat student.csv|grep $1|printf "$1 $(wc -l) \n"
    
por 17.04.2018 / 12:03