如何使用cut获取/proc/pid/maps的最后一个字段?

如何使用cut获取/proc/pid/maps的最后一个字段?

我需要对进程加载的 .so 列表进行一些处理。我尝试用空格作为分隔符进行剪切,但没有成功。如何正确地将 cat /proc/PID/maps 的输出传输到 cut 中以获取最后一个字段?

答案1

获取最后一个字段通常有点棘手。选项有

awk '{print $NF}' /proc/PID/maps

(请注意,awk返回带有条目的最后一个字段,0对于 inode=0 条目,这将返回而不是空字段)

或通过选择中间的第一个字段来双反转一行:

rev /proc/PID/maps | cut -d' ' -f1 | rev

用于grep匹配除空格之外的字符,然后匹配到行尾:

grep -o '[^ ]*$' /proc/PID/maps

答案2

您可以依靠maps' 固定填充:

cut -c74- /proc/.../maps

(在 64 位平台上)。

提取所有情况下的最后一个字段,例如使用awk '{ print $NF }', 会产生误导,maps因为行可以省略后备文件或完全使用(“[heap]”等)。

答案3

剪裁有点有限。如果你有 in file, file: ,12345 abcde 12438你可以解析它来cat file | awk '{print $2}'获取abcde你可以通过管道或重定向的内容。

相关内容