grep 결과에서 숫자 추가

grep 결과에서 숫자 추가

다음 명령을 실행합니다.

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}'

관련 정보