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
標準入力に供給され、その行に含まれていないテキストを検索しようとするため、その行grep
はcron
一致しません。
角かっこがない場合は、行に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 ワークプロセスと一致します。