Ubuntu系统下按%mem过滤导出运行进程至running_processes.csv文件
导出Ubuntu运行进程到CSV文件的正确方法
首先,你之前用grep得到空文件是正常的——grep是文本过滤工具,不是用来获取进程列表的,单独运行它只会等待输入,自然生成空文件。下面是几种靠谱的解决方法:
方法1:直接用ps生成CSV
ps是Ubuntu查看进程的核心命令,支持直接输出逗号分隔的CSV格式:
ps -e -o pid,ppid,cmd,user,%cpu,%mem --no-headers --comma > running_processes.csv
参数说明:
-e:列出系统所有运行的进程-o:自定义输出字段(这里选了进程ID、父进程ID、命令、所属用户、CPU使用率、内存使用率,你可以根据需求调整,比如加etime查看进程运行时长)--no-headers:去掉默认的表头行(如果需要保留表头可跳过此参数)--comma:用逗号分隔字段,符合CSV格式要求> running_processes.csv:将命令输出写入目标文件
方法2:自定义表头(更规范的CSV)
如果需要清晰的自定义表头,可以先写入表头再追加进程数据:
# 先写入自定义表头 printf "PID,PPID,COMMAND,USER,CPU_USAGE(%),MEM_USAGE(%)\n" > running_processes.csv # 追加进程数据到文件末尾 ps -e -o pid,ppid,cmd,user,%cpu,%mem --no-headers --comma >> running_processes.csv
处理含特殊字符的进程命令
如果有些进程的命令行包含逗号、空格等特殊字符,会破坏CSV格式,这时可以添加引号转义:
ps -e -o pid,ppid,cmd,user,%cpu,%mem --no-headers --comma --quoting-style=shell-escape > running_processes.csv
--quoting-style=shell-escape会把含特殊字符的字段用引号括起来,避免格式错乱。
内容的提问来源于stack exchange,提问作者Chael Coleiro
相关产品推荐
相关产品推荐

