将列(第一列)添加到具有服务名称和状态的csv文件

时间:2014-11-14 19:39:35

标签: csv awk

我使用下面的代码将我的centos框上的服务名称和状态重定向到csv文件: -     服务--status-all |     grep -E running \ | stopped |     awk' {print $ 1,","," ",$ NF""" "}' >> " $ HOME / MyLog / running_services_ $ HOSTNAME.csv"

我的盒子上的服务--status-all命令输出如下: - httpd正在运行

现在,我基本上需要此csv文件中的第一列作为centos框的ip地址。我可以使用这个获得IP: - ifconfig | sed -En' s / 127.0.0.1 //; s /。 inet(addr :)?(([0-9] 。){3} [0-9] / \ 2 / p'

以上命令的输出为: - 192.168.0.38(我的主机的IP地址)。

当前CSV输出如下: - ServiceName状态 我需要输出为: - IP地址服务名称状态

我需要知道如何在此CSV中插入第一列,其中包含每个行的IP地址 - 填充服务名称和状态。有关于此的任何指示? 我可以使用awk将此命令输出作为第一列打印吗?

感谢。

1 个答案:

答案 0 :(得分:0)

首先捕获IP地址,然后将值赋予awk

ip=$( ifconfig | sed -En 's/127.0.0.1//;s/.inet (addr:)?(([0-9].){3}[0-9])./\2/p' )
service --status-all | awk -v ip="$ip" -v OFS="," '/running|stopped/ {print ip, $1, $NF}' >> "$HOME/MyLog/running_services_$HOSTNAME.csv"

请注意,您不需要grep:awk可以完成这项工作。