grep正規表現「[c]ron」と「cron」は同じ意味を持ちますか? [コピー]

grep正規表現「[c]ron」と「cron」は同じ意味を持ちますか? [コピー]

grepマニュアルから

ps -ef | grep ’[c]ron’

パターンが角かっこなしで作成されると、cronのps出力行だけでなく、grepのps出力行とも一致します。一部のプラットフォームでは、psは出力を画面の幅に制限します。 grep は、使用可能なメモリに加えて、行の長さに制限はありません。

代替文字セットを表すので?[c]ronとは異なる意味を持ちます。cron[c]

grepのps出力ラインと一致しないのはなぜですか?

ありがとうございます。

答え1

正規表現に関する限り、それらは同じです。

ps括弧を使用すると、for行の出力はgrep次のようになります。

ps -ef | grep [c]ron

テキストはgrep標準入力に供給され、その行に含まれていないテキストを検索しようとするため、その行grepcron一致しません。

角かっこがない場合は、行にtextが含まれているためcron一致します。

答え2

grep '[c]ron' の場合、ps 出力にはリテラル '[''c'']' 'r' 'o' 'n' が含まれているため、grep '[c]ron' は grep と一致しません。コマンドの実行中、Stillは実行中のcronジョブプロセスと一致します。

grep 'cron' の場合、ps 出力にはリテラル 'c' 'r' 'o' 'n' が含まれているため、grep 'cron' はそれ自体、grep プロセス、いずれの場合でも cron ワークプロセスと一致します。

関連情報