将行插入带有标题的列

将行插入带有标题的列

我正在编写一个脚本,我需要打印以下命令的输出并将其放入 Excel 工作表中:命令是:

ifconfig -a |grep -i bond

输出是:

bond0   Link encap: Ethernet Hwwaddr: B1:B2:X1:X2:X3:X4
bond1   Link encap: Ethernet Hwwaddr: B1:B2:X1:X2:X4:X5

我需要使用 for 循环在多个服务器上运行此命令。但是,我需要引入以下格式的 Excel 工作表:

Server Name    Bond Name    Link Encap     Hwaddr
xxxxxx         bond0        Ethernet       B1:B2:X1:X2:X3:X4
xxxxxx         bond1        Ethernet       B1:B2:X1:X2:X4:X5

答案1

这应该适用于 bash shell。它将为您提供 CSV 输出,可以轻松导入到 Excel 中。

#!/bin/bash
printf 'Server Name,Bond Name,Link Encap,Hwaddr\n'

for line in "$(ifconfig -a|grep -i bond)"
do
  echo -n $(hostname),
  set $line
  echo $1,${3//encap:/},$5
done

这将产生在单个服务器上运行的所需输出。由于您没有提及计划如何在多个服务器上运行它来生成数据,因此您可能需要稍微更改一下以满足您的需求。

相关内容