Как я могу вставить заголовок в начале файла? - PullRequest
0 голосов
/ 22 июня 2011

Есть ли способ вставить заголовок вверху файла?У меня есть скрипт, который сканирует 5 IP-адресов, а затем выводит результаты 5 IP-сканирования в один файл Microsoft Excel в формате CSV.Я хочу добавить заголовок вверху страницы, описывающий то, что отображает каждый столбец, такой как 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 

Как я могу решить эту проблему?

Ответы [ 2 ]

1 голос
/ 22 июня 2011

У меня сложилось впечатление, что вы запускаете сценарий несколько раз, и каждый раз, когда он запускается, вы добавляете новые результаты в файл 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
0 голосов
/ 27 марта 2014

Самый простой способ - использовать команду sed. что-то вроде ниже должно работать-

sed -I '1 i \header1 header2 header3' file.txt
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...