Je cours la commande suivante:
grep -o "[0-9] errors" verification_report_3.txt | awk '{print $1}'
et je reçois le résultat suivant:
1
4
0
8
Je voudrais ajouter chacun des chiffres à une variable de comptage en cours d'exécution. Y a-t-il une magie une doublure quelqu'un peut m'aider à construire?
Cela peut tous être fait dans Awk aussi:
awk '"[0-9]+ errors" {sum += $1}; END {print sum}' verification_report_3.txt
Vous semblez utiliser [~ # ~ # ~] gnu [~ # ~ ~] Système, donc si -Perl Expressions régulières est disponible, vous pouvez écrire quelque chose comme ceci:
grep -Po '[0-9]+(?=\s+errors)' infile |
paste -sd+ |
bc
P.s. J'ai modifié l'expression régulière (ajouté le quantificateur +) pour autoriser les chiffres> 9.
P.s. Alternativement, Awk est suffisant (en supposant GNU AWK):
awk 'END { print s }
/[0-9]+[[:space:]]+errors/ {
s += $1
}' infile
Essayez de tuyer la sortie de votre grep dans
awk 'BEGIN {total=0;}{total+=$1;}END {print "Total: ",total}'