有没有办法在文件顶部插入标题?我有一个脚本扫描5个IP地址,然后将5个ip扫描结果输出到csv格式的一个Microsoft Excel文件中。我想在页面顶部添加一个标题,描述每个列显示的内容,如IP,协议,端口等。目前我有这段代码来执行此操作:
open (FILE, ">>/root/scanned_ip_addresses.csv"); #open excel file
print FILE "IP,Protocol,Port,State,Service\n"; #Adds header to top of file.
while (<TEXT>) {
...
不幸的是,它没有以我想要的方式输出,因为有五次单独的扫描,它在每次IP扫描后输出一个标头,而不是一个标头。下面是一个如何输出的例子:
IP Port Protocol State Service xx xx xxx xxxx xxxxx IP Port Protocol State Service xx xx xxx xxxx xxxxx IP Port Protocol State Service xx xx xxx xxxx xxxxx IP Port Protocol State Service xx xx xxx xxxx xxxxx IP Port Protocol State Service xx xx xxx xxxx xxxxx
我希望打印出来像这样:
IP Port Protocol State Service xx xx xxx xxxx xxxxx xx xx xxx xxxx xxxxx xx xx xxx xxxx xxxxx xx xx xxx xxxx xxxxx xx xx xxx xxxx xxxxx
我该如何解决这个问题?
答案 0 :(得分:1)
我的印象是您多次运行脚本,每次运行时,都会将新结果附加到CSV文件中。如果是这种情况,那么您所要做的就是在open
后立即检查文件大小:
open (FILE, ">>/root/scanned_ip_addresses.csv");
if(-s '/root/scanned_ip_addresses.csv' == 0) {
# No content implies that we just created the file
# and it needs a header
print FILE "IP,Protocol,Port,State,Service\n";
}
# And now continue on as usual
答案 1 :(得分:-1)
最简单的方法是使用sed命令。像下面这样的东西应该有用 -
sed -I '1 i \header1 header2 header3' file.txt