다음 명령을 실행합니다.
grep -o "[0-9] errors" verification_report_3.txt | awk '{print $1}'
나는 다음과 같은 결과를 얻습니다.
1
4
0
8
각 숫자를 누적 개수 변수에 추가하고 싶습니다. 누군가 매직 라이너를 만드는 것을 도와줄 수 있나요?
답변1
grep -o "[0-9] errors" verification_report_3.txt | awk '{ SUM += $1} END { print SUM }'
목록은 인쇄되지 않지만 합계는 인쇄됩니다. 목록과 합계를 원하면 다음과 같이 할 수 있습니다.
grep -o "[0-9] errors" verification_report_3.txt | awk '{ SUM += $1; print $1} END { print SUM }'
답변2
이는 awk에서도 수행할 수 있습니다.
awk '"[0-9]+ errors" {sum += $1}; END {print sum}' verification_report_3.txt
답변3
사용하고 계시는 것 같네요암소 비슷한 일종의 영양시스템, 그렇다면진주정규식 지원이 가능하며 다음과 같이 작성할 수 있습니다.
grep -Po '[0-9]+(?=\s+errors)' infile |
paste -sd+ |
bc
PS 숫자 > 9를 허용하도록 정규식(추가 + 수량자)을 수정했습니다.
PS 또는 awk로도 충분합니다(가정GNU awk):
awk 'END { print s }
/[0-9]+[[:space:]]+errors/ {
s += $1
}' infile
답변4
grep의 출력을 파이프로 연결해 보십시오.
awk 'BEGIN {total=0;}{total+=$1;}END {print "Total: ",total}'