ps auxまたはps -efの結果については、角かっこでコマンドを見つけるにはどうすればよいですか?


0

だから私はの結果を得る

root         2     0  0 Jan18 ?        00:00:00 [kthreadd]
root         3     2  0 Jan18 ?        00:00:23 [ksoftirqd/0]
root         4     2  0 Jan18 ?        00:00:00 [events/0]
root         5     2  0 Jan18 ?        00:00:00 [khelper]
root         8     2  0 Jan18 ?        00:00:00 [async/mgr]
root        44     2  0 Jan18 ?        00:00:00 [sync_supers]
root        46     2  0 Jan18 ?        00:00:00 bdi-default
root        48     2  0 Jan18 ?        00:00:00 [kblockd/0]
root        66     2  0 Jan18 ?        00:00:00 [kswapd0]
root        67     2  0 Jan18 ?        00:00:00 [ksmd]
root        68     2  0 Jan18 ?        00:00:00 aio/0
root       185     2  0 Jan18 ?        00:00:00 [jbd2/ubda-8]

角かっこで囲まれたコマンドを見つけるにはどうすればよいですか?

回答:


1

内にあるものは何でも、次の方法印刷のすべて[と、]それは最後のフィールドである場合にのみ:

ps aux | awk '$NF~/\[/{print $NF}'

利点は[、最後のフィールドでのみ一致することです。同等の使用grep

ps aux | grep -o '\[.*\]$'

Perlでこれを行うこともできます

ps aux | perl -lne '/(\[.+?\])$/ && print $1'

そしてsed

ps aux | sed -n 's/.*\(\[.*\]\)$/\1/p'

申し訳ありませんが、私はそれを正しく表現していませんでした。ブラケットがあるコマンドラインに該当する結果のみを印刷しようとしています。
linux8807

@ linux8807わかりません。質問を編集して、希望する出力を表示できますか?「括弧のあるCLIに該当する結果」とはどういう意味ですか?括弧で囲まれた行の直後に行が必要ですか?
テルドン

ルート44 2 0 Jan18ではなく?00:00:00 [sync_supers]結果として、[sync_supers]が結果として必要になります。かっこ内にある他のすべての結果を含む
linux8807

コマンドps -efを入力していません。ルート44 2 0 Jan18のような行にある結果を取得します か?00:00:00 [sync supers] コマンドラインのみで結果を検索するために入力する必要があるコマンド、[sync supers]の仕組みを知りたい。「現在実行中のプロセスのコマンドフィールドを角かっこで囲んだエントリのみを印刷するps auxで始まるコマンドラインを指定します。」
linux8807

@ linux8807ああ、OK、更新された回答を参照してください。ただし、引用する文(この宿題ですか?)は、かっこ内の部分だけでなく、エントリを印刷するように指示しています。とにかく、更新された回答は、角括弧内の部分のみを印刷します。
テルドン


0

実際、schaibaによるコメントが最も近い。

ps aux | grep ']'

閉じ括弧を使用することで、残りのps auxデータとともに角括弧で終わるすべての行を返します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.