从未对齐的空格分隔字段中提取列

从未对齐的空格分隔字段中提取列

我们如何从输出中提取空白不符合常规格式的列?

例如,当我们输入 时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}'

得到最后一个参数。

相关内容