2017-07-15 26 views
-1

IPプールファイルからipを読み込み、そこからwhoisを取得して、CSVスプレッドシートファイルに報告します。第二の値が空になっているのはなぜwhois ip to csv file

ip,netname,org-name,remarks,descr,country,person,address,phone,origin 
x.x.x.x,,,,,,,, 
y.y.y.y,,,,,,,, 
z.z.z.z,,,,,,,, 
... 

:私のスクリプトは、このCSVファイルを生成し、

#!/bin/bash 
echo "ip,netname,org-name,remarks,descr,country,person,address,phone,origin" > csv 
while read -r ip 
do 
whois $ip > whoisip 
netname= cat whoisip | grep "netname" 
orgname= cat whoisip | grep "org-name" 
remarks= cat whoisip | grep "remarks" 
descr= cat whoisip | grep "descr" 
country= cat whoisip | grep "Country" 
person= cat whoisip | grep "person" 
address= cat whoisip | grep "address" 
phone= cat whoisip | grep "phone" 
origin= cat whoisip | grep "origin" 
echo $ip,$netname,$orgname,$remarks,$descr,$country,$person,$address,$phone,$origin >> csv 
done <pool 

しかし: 私はそれを実行するには、このスクリプトを書きましたの?

+0

"var ="の後にスペースを置くことはできません。 'var = cat whoisip | grep "netname" 'は、varをgrepの出力ではなく文字列に等しく設定しようとします。代わりにNETNAME = "$(grep netname whoisip)"を使用してください。変数名は大文字にする必要があり、grepの出力は引用符で囲む必要があることに注意してください。その他のいくつかの点については、https://www.shellcheck.net/を参照してください。 –

+0

NETNAME = "$(grep netname whoisip)"を置き換えましたが、2番目の値は空です! – mbzadegan

+0

'netname'!=' NETNAME' – Cyrus

答えて

0

私はあなたのスクリプトを修正してみました:

#!/bin/bash 
echo "ip,netname,org-name,remarks,descr,country,person,address,phone,origin" > csv 
while read -r ip 
do 
    whois $ip > whoisip 
    netname=`cat whoisip | grep -i "netname"` 
    orgname=`cat whoisip | grep -i "org-name"` 
    remarks=`cat whoisip | grep -i "remarks"` 
    descr=`cat whoisip | grep -i "descr"` 
    country=`cat whoisip | grep -i "Country"` 
    person=`cat whoisip | grep -i "person"` 
    address=`cat whoisip | grep -i "address"` 
    phone=`cat whoisip | grep -i "phone"` 
    origin=`cat whoisip | grep -i "origin"` 
    echo $ip,$netname,$orgname,$remarks,$descr,$country,$person,$address,$phone,$origin >> csv 
done <pool 

``は同封コマンドーを実行し、出力

-iは、変数に変数名、等号と値の間のgrepの大文字小文字を区別しない

を作る返します宣言および/または割り当ては許可されません。

var=value #Correct -> var has the value value 
var= value #Incorrect -> var is empty