파일에서 문자열의 발생 횟수를 계산하고 이를 기반으로 몇 가지 조치를 취하는 쉘 스크립트를 작성하려고 합니다.
이것은 내 스크립트입니다.
#!/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