boredaf Asked: 2021-12-08 19:05:48 +0800 CST2021-12-08 19:05:48 +0800 CST 2021-12-08 19:05:48 +0800 CST 如何使用 cut 获取 /proc/pid/maps 的最后一个字段? 772 我需要对进程加载的 .so 列表进行一些处理。我尝试使用空格作为分隔符进行剪切,但没有成功。如何正确地将 cat /proc/PID/maps 的输出通过管道传输到 cut 以获取最后一个字段? cut 3 个回答 Voted Stephen Kitt 2021-12-08T22:09:52+08:002021-12-08T22:09:52+08:00 您可以依靠maps' 固定填充: cut -c74- /proc/.../maps (在 64 位平台上)。 在所有情况下提取最后一个字段,例如with awk '{ print $NF }',是误导 withmaps因为行可以省略支持文件或完全使用(“[heap]”等)。 Best Answer FelixJN 2021-12-09T03:42:07+08:002021-12-09T03:42:07+08:00 获得最后一个字段通常有点棘手。选项是 awk '{print $NF}' /proc/PID/maps (请注意,awk返回带有条目的最后一个字段,这将返回0而不是 inode=0 条目的空字段) 或通过选择中间的第一个字段来双重反转一条线: rev /proc/PID/maps | cut -d' ' -f1 | rev 用于grep匹配除空格以外的字符,然后匹配到行尾: grep -o '[^ ]*$' /proc/PID/maps Brian 2021-12-08T21:50:00+08:002021-12-08T21:50:00+08:00 剪辑有点受限。如果你有文件,文件:12345 abcde 12438你可以解析它cat file | awk '{print $2}'以获得abcde你可以管道或重定向的内容。
您可以依靠
maps
' 固定填充:(在 64 位平台上)。
在所有情况下提取最后一个字段,例如with
awk '{ print $NF }'
,是误导 withmaps
因为行可以省略支持文件或完全使用(“[heap]”等)。获得最后一个字段通常有点棘手。选项是
(请注意,
awk
返回带有条目的最后一个字段,这将返回0
而不是 inode=0 条目的空字段)或通过选择中间的第一个字段来双重反转一条线:
用于
grep
匹配除空格以外的字符,然后匹配到行尾:剪辑有点受限。如果你有文件,文件:
12345 abcde 12438
你可以解析它cat file | awk '{print $2}'
以获得abcde
你可以管道或重定向的内容。