我正在编写一个脚本,我需要打印以下命令的输出并将其放入 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
这将产生在单个服务器上运行的所需输出。由于您没有提及计划如何在多个服务器上运行它来生成数据,因此您可能需要稍微更改一下以满足您的需求。