Ps

對於 ps aux 或 ps -ef 的結果,我如何才能找到帶括號的命令?

  • March 18, 2014

所以我得到的結果

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]

我如何才能找到帶有括號的命令?

以下所有方法都會列印其中的任何內容[]但前提是那是最後一個欄位:

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

優點是它只會匹配[最後一個欄位中的 a。等效的使用grep

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

你也可以用 Perl 做到這一點

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

並且sed

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

怎麼樣 ps aux | grep '['

引用自:https://unix.stackexchange.com/questions/101794