Solaris 10では、grepを正しく使用することができません。私はちょうど "リンゴ"または "バナナ"を含む文にマッチする正規表現が必要です。私は1時間試していますが、動作させることはできません。(Solaris10 grep)異なる単語に一致する正規表現
#!/bin/sh
# this is NOT bash
# grep usage: grep -hblcnsviw pattern file . . .
RESET='\033[0m'
RED='\033[0;31m'
GREEN='\033[0;32m'
YELLOW='\033[0;33m'
write() {
message=$1
if [ `echo $message | grep -c '^Success'` -gt 0 ]
then
echo "${GREEN}$message${RESET}"
elif [ `echo $message | grep -c '(apple|banana)'` -gt 0 ] # doesn't work
then
echo "${YELLOW}$message${RESET}"
elif [ `echo $message | grep -c '^.*(apple|banana).*$'` -gt 0 ] # neither
then
echo "${YELLOW}$message${RESET}"
elif [ `echo $message | grep -c '/^.*(apple|banana).*$/'` -gt 0 ] # neither
then
echo "${YELLOW}$message${RESET}"
elif [ `echo $message | grep -c '^Error'` -gt 0 ]
then
echo "${RED}$message${RESET}"
fi
}
write 'Success'
write 'Error'
write 'banana'
P.S. :
grep -c 'apple\|banana'
そして、あなたは他のものを必要としない:私は何かのために正規表現を必要とする場合、それは非常にうまく機能し、ちょうどリンゴやバナナ
あなたのバージョンの 'grep'がそれをサポートしていると仮定すると、' echo '$ message" grep -q '^成功'; 'grep'の出力をキャプチャするのではなく、'〜 'などとなります。 – chepner