Eu tenho este arquivo:
John Green', 'Age: 32', 'State: New York', 'Total cars: 2', 'Manufacter: General Motor', 'Model: Pontiac', 'Year: 2000', 'Manufacter: Ford Motor', 'Model: Endeavour', 'Year: 2010
Peter Jones', 'Age: 20', 'State: Florida', 'Total cars: 0
Richard Smith', 'Age: 44', 'State: Illinois ', 'Total cars: 1', 'Manufacter: Toyota', 'Model: Yaris', 'Year: 2005
Brian Brown', 'Age: 42', 'State: Texas', 'Total cars: 0
Vincent Osmnod', 'Age: 39', 'State: Maryland', 'Total cars: 1', 'Manufacter: Fiat', 'Model: 500X', 'Year: 2015
Eu posso usar o awk para extrair o 4º campo
e se eu quiser pegar o número de ocorrências de ', '
por linha eu uso o script:
grep -o -n "', '" file | cut -d : -f 1 | uniq -c
este comando também me dá o número de linha
9 1
3 2
6 3
3 4
6 5
para que eu possa obter os resultados separadamente
Minha saída desejada é:
Total cars: 2 |9 1
Total cars: 0 |3 2
Total cars: 1 |6 3
Total cars: 0 |3 4
Total cars: 1 |6 5
Eu tentei com este script:
#!/bin/bash
FILENAME=$1
count=0
while read LINE
do
OUTP1=$(awk -F"', '" '{print $4" |"}' $LINE)
OUTP2=$(grep -o -n "', '" $LINE1 | cut -d : -f 1 | uniq -c)
echo "$OUTP1 $OUTP2"
done < $FILENAME
e me dá esta saída:
awk: cannot open John (No such file or directory)
3 1
6 2
3 3
6 4
Tente isto:
Se você tiver linhas em branco em
file
, talvez queira usar:Isso depende do uso de
', '
como separador de campo, portanto, se uma linha terminar com essa combinação de caracteres, o último campo será considerado vazio. Isso pode ser um caso de canto para você. Em caso afirmativo, por favor, mencione-o para que esta e outras soluções possam ser adaptadas.resultado