如何从 ps 中删除中间行?
How remove middle of lines from ps?
我正在努力使 ps -ef
的输出在 Red Hat Linux 上更具可读性。我知道这个问题已经被问过很多次了,但我有几个 java 进程需要经常监控,每个进程的行长度至少为 500 个字符,但每行的长度不同。我需要前 14 个字符,以便获取 pid 和同一行的最后 40 个字符来获取名称。
到目前为止我得到的是:
ps -ef | grep -v 'eclipse' | grep java | cut -c1-14
删除我的 运行 的 Eclipse 副本,然后获取其他 java 进程,然后切入该行的第一部分。
我知道如何使用 rev
剪切的两侧来获得最后一部分,但我不知道如何将两者组合在一起。
可以给cut
几个区域剪,但是不能从最后剪,所以要剪最后40个字符,需要提前知道行长。
我建议使用更强大的工具,例如 gawk
:
ps -ef|gawk '
/eclipse/ {next}
/java/ {
printf("%-10s %8s ...%s\n", , , substr([=10=],length()-40));
}'
这还允许您很好地格式化输出。
我正在努力使 ps -ef
的输出在 Red Hat Linux 上更具可读性。我知道这个问题已经被问过很多次了,但我有几个 java 进程需要经常监控,每个进程的行长度至少为 500 个字符,但每行的长度不同。我需要前 14 个字符,以便获取 pid 和同一行的最后 40 个字符来获取名称。
到目前为止我得到的是:
ps -ef | grep -v 'eclipse' | grep java | cut -c1-14
删除我的 运行 的 Eclipse 副本,然后获取其他 java 进程,然后切入该行的第一部分。
我知道如何使用 rev
剪切的两侧来获得最后一部分,但我不知道如何将两者组合在一起。
可以给cut
几个区域剪,但是不能从最后剪,所以要剪最后40个字符,需要提前知道行长。
我建议使用更强大的工具,例如 gawk
:
ps -ef|gawk '
/eclipse/ {next}
/java/ {
printf("%-10s %8s ...%s\n", , , substr([=10=],length()-40));
}'
这还允许您很好地格式化输出。