Linux sed コマンドに一致する IP アドレスを検索させる方法

Linux sed コマンドに一致する IP アドレスを検索させる方法

私のLinuxシステムでの実行listdata.sh結果は次のとおりです。

{
  "111.111.111.111:11957": 1,
  "222.222.222.222:9999": 1,
  "333.333.333.333:9999": 1,
  "[::]:0": 1,
  "444.444.444.444:9999": 1,
  "d6iiugkkjfgt3kt2z.onion:47500": 1,
  "555.555.555.555:11957": 1,
  "666.666.666.666:9999": 1,
  "nv52misrzsuyre6.onion:47509": 1,
  "777.777.777.777:9999": 1,
  ":9999": 1,
  "[::]:0": 1
}

私のIPが222.222.222.222
Linuxコマンドを実行したときに確認する必要があります。

"任意のコマンド" "222.222.222.222" "私のIPが見つかったら"何もしません "見つからない場合" "何かをしてください"

データリストは時々アドレスに移動し、時にはIPv6も表示します。

答え1

IPアドレス222.222.222.222が見つからない場合は、bash次のスクリプトを作成して操作を実行できます。

#!/bin/bash
listdata.sh | grep "\"222\.222\.222\.222:"  > /dev/null
if [ $? -ne 0 ]   # if grep not successful 
then
    ... do some actions
fi

答え2

ありがとう、Rui F Ribeiroに行ったことがありますか?これが私の最後のスクリプトです。

#!/bin/bash
listdata.sh | grep "\"222.222.222.222:"  > /dev/null
if [ $? -ne 0 ]   # if grep not successful 
then
        addIPtolist.sh > /dev/null
        echo "`date -u` Not in list"  >> /var/log/listdata.log
        exit
fi
        echo "`date -u` OK Still in list"   >> /var/log/listdata.log

これは私のループバッシュです

#!/bin/bash
while true
do
        listdata.sh
        sleep  60
done

関連情報