블록인 경우 쉘 스크립트에서 grep 및 wc 사용

블록인 경우 쉘 스크립트에서 grep 및 wc 사용

파일에서 문자열의 발생 횟수를 계산하고 이를 기반으로 몇 가지 조치를 취하는 쉘 스크립트를 작성하려고 합니다.

이것은 내 스크립트입니다.

#!/bin/sh
if [ grep "\s*oplocks\s=" sample.txt | wc -l = 5 ]
then
    echo "cnt equals 5"
else
    echo "cnt not 5"
fi

그 외에도 grep발생 횟수도 계산하고 싶은데, wc -l이것을 어떻게 if문에 넣을 수 있나요?

당신의 도움을 주셔서 감사합니다!

답변1

명령 대체 $()-eq: 산술 비교 사용:

if [ $(grep 'something' file | wc -l) -eq 5 ]
    then
       echo equal
    else
       echo not equal
fi

답변2

-c인수를 사용하여 grep하고 wc완전히 건너뜁니다. 또는 -eq 등을 피하기 위해 산술 컨텍스트를 사용할 수 있습니다.

#!/bin/bash

if (( $(grep -c 'pattern' sample.txt) == 5 )); then
    echo "5 occurances"
fi

exit

관련 정보