whoami-thatway 2020-11-04 17:14 采纳率: 0%
浏览 20

执行某条脚本后,进行数据比对,提取没有的数字。求助大佬!!

#!/bin/sh
ifconfig | grep ppp1
if [ $? -eq 0 ]
then
ifconfig | grep ppp1
ifconfig | grep wan1
fi
#####

执行上面shell脚本后会出现,图片说明

然后怎么将提取 ppp后面对应的数字,例如100,101,102,103.......
和wan后面100,101,102.........
两者进行比对,筛选出没有的数字。


  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间 新星创作者: 前端开发技术领域 2024-07-24 22:01
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    为了从输出中提取ppp后面的数字和wan后面的数字,并进行比较,可以使用正则表达式来匹配数字并处理。以下是一个示例代码:
    #!/bin/sh
    # 提取ppp后面的数字
    ppp_nums=$(ifconfig | grep -o 'ppp[0-9]*' | sed 's/ppp//')
    # 提取wan后面的数字
    wan_nums=$(ifconfig | grep -o 'wan[0-9]*' | sed 's/wan//')
    echo "ppp_nums: $ppp_nums"
    echo "wan_nums: $wan_nums"
    # 筛选出缺失的数字
    missing_nums=""
    for (( i=100; i<=110; i++ ))
    do
        if [[ ! "$ppp_nums" =~ $i ]]; then
            missing_nums+="ppp$i "
        fi
        if [[ ! "$wan_nums" =~ $i ]]; then
            missing_nums+="wan$i "
        fi
    done
    echo "缺失的数字: $missing_nums"
    

    这段代码首先利用grep和sed命令从ifconfig的输出中提取出ppp后面的数字和wan后面的数字,然后通过循环从100到110,逐个检查是否存在于提取的数字中,最后输出缺失的数字。 请注意,这只是一个简单的示例代码,实际应用中可能需要根据具体情况进行调整和优化。

    评论

报告相同问题?