2011-06-22 8 views
0

ファイルの先頭にヘッダーを挿入する方法はありますか?私は5つのIPアドレスをスキャンし、5つのIPスキャン結果をcsv形式の1つのMicrosoft Excelファイルに出力するスクリプトを持っています。ファイルの先頭にヘッダーを挿入するにはどうすればよいですか?

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、プロトコル、ポート、およびなどなど、各列が表示され、現在私はこれを行うには、コードのこの部分を持っているもの記述するページの上部にヘッダを追加します私はそれが5つの別々のスキャンが各IPスキャンの後にただ1つのヘッダーの代わりにヘッダーを出力しているので、それを望みます。相続人は、それが出力する方法の一例:

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つのIPだけが追加されると、5回実行するとこの動作が表示されます。また、スクリプトのコードがなくても、またから読んでいるときに何をしているのか、多くの手助けをするのは難しいです。 – devyndraen

答えて

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

最も簡単な方法は、sedコマンドを使用することです。 次のようなものが動作するはずです。

sed -I '1 i \header1 header2 header3' file.txt 
関連する問題