ripgrep を使用して、次の操作を実行できます。
ps aux | rg 'process name'
前のコマンドの出力を取得できます。何らかの理由でこれは通常を使用して機能しますgrep
。
ps aux | grep 'process name'
それは私がgrepにパイプすることを無視し、私が入力したプロセスの現在の作業ディレクトリを検索します。
たとえば、Firefox を grep すると表示されません。
編集:これはここで説明されている一種のエイリアシングによるものです。https://unix.stackexchange.com/a/500727/375504
これは働きます:ps aux | \grep firefox
答え1
使えば言うps aux | grep 'process name'
それは(grep
)私がgrepにパイプしたいことを無視し、現在の作業ディレクトリを検索します。。
あなたも書いたgrepのエイリアスは次のとおりです。grep -nRi
。
grep
()の文書を見ると、フラグが説明するものと正確に一致することman grep
がわかります。-R
-r
、--recursive
コマンドラインにある場合にのみ、シンボリックリンクに沿って各ディレクトリの下のすべてのファイルを繰り返し読み込みます。 [...]
そして
-R
、--dereference-recursive
各ディレクトリのすべてのファイルを再帰的に読み込みます。すべてのシンボリックリンクに従ってください。-r
GNU grepの場合、grep -r
ファイル名引数が指定されていない場合、デフォルトは現在のディレクトリから始まります。他のいくつかのバージョンのgrepはこれを実行しませんが、stdinの読み込み中に「stdinの再帰検索」について警告することがあります。
grep
解決策は、別の名前でエイリアスを使用しないことです。特定の機能が必要な場合は、新しいエイリアスを作成します(rgrep
たとえば、ここでは代替として使用できます)。
答え2
私の問題は、bash aliasesにエイリアスを追加したことですgrep
。grep -nRi $*
エイリアスや通貨を削除すると、\grep
問題が解決する可能性があります。