パターンで否定を使用してgrep

パターンで否定を使用してgrep

grepパターンの否定的な部分を一致させるために(または他のツール)をどのように使用できますか?

はい

php cronjob.php test
php cronjob.php scan_document
php cronjob.php scan_document -v
php cronjob.php scan_documenttest -v
php cronjob.php scan_document_callback_retry

上記のシナリオでは、行2と行3を一致させる必要があります。

php cronjob.php scan_document
php cronjob.php scan_document -v

私はこのコマンドを使用します

ps --noheader -o pid,ppid,cmd -C php | grep "cronjob.php scan_document"

しかし、私が望むものよりも優れていると思います。

php cronjob.php scan_document
php cronjob.php scan_document -v
php cronjob.php scan_document_callback_retry

ベストアンサー1

次のような場合をすべて一致させたいと思います。単語の境界 \b後ろにscan_document:

$ grep 'cronjob\.php scan_document\b' << EOF
php cronjob.php test
php cronjob.php scan_document
php cronjob.php scan_document -v
php cronjob.php scan_documenttest -v
php cronjob.php scan_document_callback_retry
EOF
php cronjob.php scan_document
php cronjob.php scan_document -v

ピリオドをエスケープしました。cronjob.phpそれ以外の場合は、単一の文字と一致する可能性があります。

おすすめ記事