文字列と変数のセットにパターンマッチングを実行できるegrepコマンドを考え出そうとしています。これまでのところ、私は以下を使用しています:
ps -ef <uid> | egrep "string1|string2" | egrep -v "string4|string5" | grep -v "${variable}"
これは機能しますが、私は統一された効率的な構文を作成しようとしています。
Linuxでは次のコマンドを動作させることができましたが、AIXでは動作しませんでした。
ps -ef <uid> | egrep "string1|string2" | grep -v "${variable}\|string4\|string5"
私はmanページを調べてegrep-cなどを試しましたが、組み合わせを機能させることができませんでした。
Grepコマンドとegrepコマンドを混在させており、grepに必要な-E
フラグを削除して、|
を代替正規表現として解析するようにしています。または、egrepを最後まで使用します。
次のいずれかを使用します。
ps -ef | egrep "string1|string2" | egrep -v "${variable}|string4|string5"
または
ps -ef | egrep "string1|string2" | grep -Ev "${variable}|string4|string5"
... variable
(または、さらに言えば、さまざまなstringN)の正規表現トークンをエスケープするように注意してください。