如何让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

这是我的循环bash

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

相关内容