質問: 一度に複数のパターンをgrepする方法は? そこのパターンに一致するすべての行を取得したい: 何か どこか どこか /data/rawlog.txtからこのコマンドを試しましたが、失敗しました:grep -e "[something|someplace|somewhere]" /data/rawlog.txt 誰が何が悪いのか知っていますか?
回答: まず、角かっこは必要ありません。次に、拡張正規表現を使用するか、パイプをエスケープする必要があります。これの1つが機能するはずです:egrep -e "something|someplace|somewhere" /data/rawlog.txt grep -e "something\|someplace\|somewhere" /data/rawlog.txt フォークの外に何かを配置したい場合は、それをグループ化することを忘れないでください。たとえば、これらのパターンを行の終わりでのみ発生させる場合は、次のようにします。egrep -e "(something|someplace|somewhere)$" /data/rawlog.txt 括弧にもegrepまたはエスケープが必要であることに注意してください。