
以下の条件に従って、行にappleまたはPie文字列が含まれていることを確認したいと思います。
aaaa bbbbb applezzzz this should be treated as invalid
aaaaapple dddddd invalid case
aaaa vvvvv apple valid case
apple valid case (space just after apple)
appleY if Y is present just after apple , it is also treated valid , Y could also be symbol like $
私はgrepを試しました
grep 'apple\|appleY\|appple ' <<< $line
grep 'pie\|pieY\|pie ' <<< $line
ただし、これは無効なケースを満たします。
答え1
GNUを使用している場合は、grepオプションを使用して単語全体を検索して複数のパターンを指定grep
できます。-w
grep -w -e apple -e appleY -e pie -e pieY
正規表現で組み合わせることもできます。
grep -w 'appleY\?\|pieY\?'
ここで意味するのは、Y?
「オプションでYが続く」です。
オプションとともに拡張正規表現を使用すると、エスケープを削除できます-E
。
grep -w -E 'appleY?|pieY?'