将命令输出写入perl中的csv文件

问题描述 投票:2回答:2

我正在尝试将命令输出写入csv文件.Below是我想用来将数据写入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
shell perl
2个回答
1
投票

link评论中的tadman有很多信息,但你也可以做

ps -eo pid,comm,pmem,vsz | grep process_name | 
    perl -nE '
        BEGIN { say "pid,comm,pmem,vsz" }; 
        say join ",", split
    ' > ps_process.out

(分为多行以便于阅读)

BEGIN块仅在编译阶段执行,因此在迭代中不会重复。


0
投票

这是一种直截了当的方式,使用qazxsw poi开关为管道中的每一行隐式创建qazxsw poi(这是说-a的捷径)

@F
© www.soinside.com 2019 - 2024. All rights reserved.