回答:
通常の正規表現では、文字(、|および)エスケープする必要があります。だからあなたは使うべきです
$ grep "^ID.*\(ETS\|FBS\)" my_file.txt
拡張正規表現(-E)オプションを使用する場合、エスケープは必要ありません。man grepセクション「Basic vs Extended Regular Expressions」を参照してください。
複数のブランチ(|as or)を使用する場合は、互換性を高めるために、「modern RE」(別名)を使用することを明示的に指定することをお勧めします。ERE。
これを行うには、grep -Eを使用します。
grep -E "^ID.*(ETS|FBS)" my_file.txt
RE、ERE、および「現代の」ERストーリー全体の詳細については、を参照してくださいman 7 regex。
または、のegrep代わりに使用できますgrepが、次のように読むことができますman grep。
egrepはgrep -Eと同じです。fgrepはgrep -Fと同じです
(...)
egrepまたはfgrepのいずれかとしての直接呼び出しは非推奨です
egrep代わりに使用することもできますgrep -E。