我正在尝试将命令输出写入csv文件。下面是我要用于将数据写入csv文件的命令
ps -eo pid,comm,pmem,vsz | grep process | awk '{print $1",",$2",",$3",",$4}'
我们如何在Perl中做到这一点。 csv文件的标题应具有,然后是相应的值:
pid,comm,pmem,vsz
我试图做这样的事情,但是它对我不起作用:
echo "execution started.."
pid,comm,pmem,vsz >> out.txt
while [ true ]; do
echo "running.."
sleep 2
ps -eo pid,comm,pmem,vsz | grep process | awk '{print $1",",$2",",$3",",$4}' >> out.txt
done
答案 0 :(得分:1)
ps -eo pid,comm,pmem,vsz | grep process_name |
perl -nE '
BEGIN { say "pid,comm,pmem,vsz" };
say join ",", split
' > ps_process.out
(为了便于阅读,分为多行)
BEGIN
块仅在编译阶段执行,因此不会在迭代中重复。
答案 1 :(得分:0)
这是一种简单的方法,使用Java 2
C# 1
Java 2
Python 1
Java 1
Java 1
开关为管道中的每行隐式创建-a
(这是说@F
的捷径)
@F = split /\s+\, $_