Linux

如何使linux sed命令找到匹配的ip地址

  • March 8, 2018

在我的 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

如果您的 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

謝謝@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

這是我的循環 bash

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

引用自:https://unix.stackexchange.com/questions/428917