ソートされていないスペースで区切られたフィールドから列を抽出する

ソートされていないスペースで区切られたフィールドから列を抽出する

一般的な形式に従わない出力から空の列をどのように抽出できますか?

たとえば、と入力すると、ps -efすべてのプロセス、プロセスIDなどが表示されます。最後の列または特定の列のみをインポートできる方法は何ですか?

答え1

オプションを使用すると、表示する-oフィールドを指定できます。でman ps検索または使用できる利用可能なフィールドのリストps L

たとえば、を使用すると、ps -eo user,command次のようにユーザー名とコマンドが表示されます。

root /bin/login --
root /sbin/getty 

およびパラメータを使用することもできます-O。これにより、いくつかのデフォルトフィールドが使用され、指定されたフィールドが追加されますが、出力を解析することをお勧めしますo

答え2

おそらくあなたは以下が欲しいでしょう:

ps -eo comm

コマンド名を取得するには、または

ps -eo args

コマンドパラメータの取得または

ps -eo args="Last-Arg" | awk '{print $NF}'

最後のパラメータを取得します。

関連情報