grep の結果間の改行

grep の結果間の改行

サーバー上で実行しているスパイダーを時々監視する必要があります。同時に実行されている反復の数と、そのうちのどれかがハングしているかどうかを確認するためにテストしています。

私はこれを使用します:

echo `ps -ewwo args | grep '^[^ ]*curl'`

出力はすべて1行です。これを次のように変更すると

echo `ps -ewwo args | grep -n '^[^ ]*curl'`

行番号は取得できますが、出力はすべて 1 行のままです。結果を別々の行に分割するにはどうすればよいでしょうか?

テストとして、次のようなことをやってみました

grep "br" /home/user/www/index.php

そして、多くのインスタンスが見つかり、それぞれが私の希望どおりに別々の行に出力されました。

答え1

サブシェルの出力を引用符で囲まない場合`...`、改行はスペースに置き換えられます。改行が必要な場合は、サブシェルを使用せず`...`、コマンドを実行して、 をまったく使用せずに、コマンド自体に出​​力を行わせますecho。例:

ps -ewwo args | grep '^[^ ]*curl'
ps -ewwo args | grep -n '^[^ ]*curl'

関連情報