2016-10-10 4 views
-1

/ec/hostsのようなホスト名を持つIPを含むファイルを作成するために使用しました。もう1つはIPを含んでいて、ホスト名が見つからない場合はIPをプリントしてくださいホスト名ファイルからIPのホスト名を確認するためのスクリプト

スクリプト:

for i in `cat ip | awk '{print $2}'` ;do 
    var=`grep "$i" Server_ip` | 
    awk ' {if($var == "") print $i else print $1}'; 
done 

ファイル1

localhost 127.0.0.1 
test 10.0.0.1 
test1 10.0.0.2 

ファイル2

3 127.0.0.1 
2 10.0.0.1 
1 10.0.0.2 
4 10.0.0.3 
5 10.0.0.4 

所望の出力

localhost 
test 
test1 
10.0.0.3 
10.0.0.4 
+0

あなたの質問は何ですか?あなたのスクリプトが正しいことをしていない場合は、期待される出力と実際の出力を明確に述べてください。 – kaylum

+0

Server_ipファイルからデータを取得しようとしていて、ipが見つかりませんでしたので、if条件が機能しない場合は、 – user3595099

+0

が「動作していません」というメッセージは表示されません。正確なテスト入力、期待される結果、実際の結果を明確に記述してください。 – kaylum

答えて

0

これを試すことができます。

#!/bin/bash 
for i in `cat ip | awk '{print $2}'` ;do 
var=`awk -v ip=${i} '$2 == ip {print $1}' Server_ip` 

if [ -z "$var" ]; then 
    echo $i 
else 
    echo "$var" 
fi 

done 

例:

[email protected]:/tmp/test$ cat Server_ip 
localhost 127.0.0.1 
test 10.0.0.1 
test1 10.0.0.2 

[email protected]:/tmp/test$ cat ip 
3 127.0.0.1 
2 10.0.0.1 
1 10.0.0.2 
4 10.0.0.3 
5 10.0.0.4 

[email protected]:/tmp/test$ ./test.sh 
localhost 
test 
test1 
10.0.0.3 
10.0.0.4 
関連する問題