linux – 如何仅获取所有正在运行的进程ID?
发布时间:2020-07-03 10:33:14 所属栏目:Linux 来源:互联网
导读:我知道 ps ax 返回pids 1 ? Ss 0:01 /sbin/init2 ? S 0:00 [kthreadd]3 ? S 0:00 [migration/0] 我只需要清理那些字符串,但我无法用sed做,因为我无法编写正确的正则表达式.你可以帮帮我吗? 使用ps输出格式: ps -A -o pid 输出格式化命令是
我知道 ps ax 返回pids 1 ? Ss 0:01 /sbin/init 2 ? S< 0:00 [kthreadd] 3 ? S< 0:00 [migration/0] 我只需要清理那些字符串,但我无法用sed做,因为我无法编写正确的正则表达式.你可以帮帮我吗? 解决方法使用ps输出格式:ps -A -o pid 输出格式化命令是最佳选择. o选项控制输出格式.我列出了下面的一些参数,其余的参见’man ps'(使用多个它将是-o pid,cmd,flags). KEY LONG DESCRIPTION c cmd simple name of executable C pcpu cpu utilization f flags flags as in long format F field g pgrp process group ID G tpgid controlling tty process group ID j cutime cumulative user time J cstime cumulative system time k utime user time o session session ID p pid process ID 获取列时,awk或Cut会更好: ps ax | awk '{print $1}' 正则表达式是一个选项,如果不是最好的: ps ax | perl -nle 'print $1 if /^ *([0-9]+)/' $1仅打印括号中匹配的内容. ^锚定到行的开头.空格星号表示在数字前允许使用可选的空格字符. [0-9]表示一个或多个数字.但我不建议正则表达式执行此特定任务,看看为什么? (编辑:大庆站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |