grep 출력 구축 도움말

grep 출력 구축 도움말

사용 중인 명령이 있습니다.

#cat test |grep "Ongoing Calls" |awk -F' ' '{print $3}'
40
2

보시다시피 2개의 값 40과 2를 반환합니다.

이제 그것들을 함께 추가하여 파일 42에 넣고 싶습니다.

어떤 아이디어라도

여기서 편집한 내용은 테스트 파일의 내용입니다. 내가 원하는 것은 OnGoing 호출의 값과 이를 함께 추가하는 것뿐입니다.

    Iedge Group                                               1
    RasIpAddr                                                 0.0.0.0/0
    SubnetIP
    SubnetMask
    Max Calls                                                 50 (0:-1)
    Max 911 Overflow Calls                                    0 (0:0)
    Ongoing Calls                                             2 (0:2)
    Ongoing Calls                                             40 (40:0)
    Max Src Hunting                                           0
    Max number of simultaneously allowed transfer calls       0
    Ongoing transfer calls                                    0
    Priority                                                  0
    Call Duration                                             0
    Idle TCP/TLS/SCTP Connection Timeout                               0
    Bi-directional TCP/SCTP connections                            enabled
    Capabilities                                              gateway
    SIP                                                       enabled
    H323                                                      disabled
    Zone

이 명령을 사용할 때

    awk '/Ongoing Calls/ { sum += 3 } END { print sum }' test `

"진행 중인 통화" 섹션에 아무것도 없으면 계속 값 3이 표시됩니다.

답변1

스크립트 awk를 다음으로 변경하세요.

awk '{ sum += $3 } END { print sum }'

@123 사용자가 지적했듯이 전체 파이프라인은 단일 호출로 대체될 수 있습니다 awk.

awk '/Ongoing Calls/ { sum += $3 } END { print sum }' test

답변2

나는 이것이 다음을 사용하는 것보다 낫다고 말하는 것이 아닙니다 awk.

sed -rn 's/Ongoing Calls *([0-9]+).*/\1/p' test | paste -sd+ | bc

관련 정보