对于 ps aux 或 ps -ef 的结果,如何找到带括号的命令?

对于 ps aux 或 ps -ef 的结果,如何找到带括号的命令?

所以我得到的结果

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

以下所有方法都会打印[and中的所有内容,]但前提是这是最后一个字段:

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'

答案2

关于什么ps aux | grep '['

答案3

实际上 shaiba 的评论是最接近的。

辅助 | grep ']'

通过使用右括号,它返回所有以方括号结尾的行以及 ps aux 数据的其余部分。

相关内容