我正在尝试编写一个 shell 脚本来计算文件中字符串出现的次数,并根据它采取一些操作。
这是我的脚本:
#!/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