SHELL编程----判断输入的是否为IP地址

描述

写一个脚本统计文件nowcoder.txt中的每一行是否是正确的IP地址。

如果是正确的IP地址输出:yes

如果是错误的IP地址,且是四段号码的话输出:no,否则的话输出:error

假设nowcoder.txt内容如下:

192.168.1.1
192.168.1.0
300.0.0.0
123

你的脚本应该输出:

yes

yes

no

error

示例1

输入:192.168.1.1
192.168.1.0
300.0.0.0
123
复制输出:yes
yes
no
error

具体代码实现:

#!/bin/bashawk -F "." '{if(NF==4){for(i=1;i<5;i++){if($i>255 || $i<0){print("no")break}if(i==4){print("yes")}}}else{print("error")}
}' nowcoder.txt

解题思路:

1.要判断是否有四段号码,首先想到的是用awk -F的命令以"."为分隔符,NF判断是否存在四个域来判断是否有四段号码

2.之后进行判断,如果存在四段则进行下一步的条件判断,如果不存在则直接输出"error"

3.判断存在四段后对是否为正确的IP地址进行判断,所以要分别对每一段号码进行判断是否在[0-255]之间 ,因此用到for循环,如果都在则输出"yes",只要有一个不在就跳出循环,并输出"no"

4.如果i==4了说明四段号码都符合条件,则输出"yes"

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/153.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL运维故障排查与高效解决方案

一、引言 MySQL作为关键的业务数据库&#xff0c;其稳定运行对于企业的日常运营至关重要。然而&#xff0c;在实际运维过程中&#xff0c;我们可能会遇到各种故障和问题。本文将针对MySQL运维中常见的故障进行深度排查&#xff0c;并提供高效的解决方案&#xff0c;帮助运维人员…

京西商城——前端项目的创建以及前后端联调

创建VUE项目 在jingxi_shop_project文件夹中再创建一个 frontend 文件夹用来存放前端项目 /jingxi_shop_project/backend/jingxi_shop_project....../frontend/jingxi_shop_web......首先要安装 node.js 和 VUE cli&#xff0c;进入到项目目录内创建项目 vue create jingxi_…

前端css中transition的使用

前端css中transition的使用 一、前言二、transition的4个属性三、例子1.源码12.源码1运行效果 四、结语五、定位日期 一、前言 CSS中的transition&#xff08;过渡&#xff09;&#xff0c;根据字面意思就可以理解成一种变化状态的过程。当我们有一个方形&#xff0c;我们想让…

Ubuntu 22最新dockers部署redis哨兵模式,并整合spring boot的详细记录(含spring boot项目包)

dockers部署redis哨兵模式&#xff0c;并整合spring boot 环境说明相关学习博客一、在docker中安装redis1、下载dockers镜像包和redis配置文件&#xff08;主从一样&#xff09;2、编辑配置文件&#xff08;主从一样&#xff09;3、启动redis&#xff08;主从一样&#xff09;4…

Flutter MQTT通信(实现聊天功能)

MQTT协议简介&#xff1a; MQTT&#xff08;Message Queuing Telemetry Transport&#xff09;是一种轻量级的、开放的、基于发布/订阅模式的消息传输协议&#xff0c;最初由IBM开发。它专门设计用于在低带宽、不稳定的网络环境下进行高效的消息传输。 学习完本篇文章&#x…

重启服务器或重启docker,导致emqx的Dashboard的密码重置为public

最近在项目中突然发现重启服务器,或者重启docker 修改好的emqx的Dashboard的密码重置为public 技术博客 http://idea.coderyj.com/ 1.解决办法就是固定 emqx的节点 # 拉取镜像 docker pull emqx/emqx# 创建目录&#xff0c;进行目录挂载 mkdir -p /docker/emqx/{etc,lib,data,…

llama-factory SFT系列教程 (三),chatglm3-6B 大模型命名实体识别实战

文章列表&#xff1a; llama-factory SFT系列教程 (一)&#xff0c;大模型 API 部署与使用llama-factory SFT系列教程 (二)&#xff0c;大模型在自定义数据集 lora 训练与部署 llama-factory SFT系列教程 (三)&#xff0c;chatglm3-6B 命名实体识别实战 简介 利用 llama-fa…

免费的壁纸api

# 联想壁纸 from enum import Enumimport requestsclass LenovoTopHeadersTypePage(Enum):"""头部页面类型wallpaper 精选wallpaperHot 热门wallpaperRank 排行"""wallpaper wallpaperwallpaperHot wallpaperHotwallpaperRank wallpaperRankc…

NL2SQL技术方案系列(1):NL2API、NL2SQL技术路径选择;LLM选型与Prompt工程技巧,揭秘项目落地优化之道

NL2SQL技术方案系列(1):NL2API、NL2SQL技术路径选择;LLM选型与Prompt工程技巧,揭秘项目落地优化之道 NL2SQL基础系列(1):业界顶尖排行榜、权威测评数据集及LLM大模型(Spider vs BIRD)全面对比优劣分析[Text2SQL、Text2DSL] NL2SQL基础系列(2):主流大模型与微调方法精选…

Android系统学习 —— 替换crash_dump文件

步骤 查看crash_dump所在的路径 vsoc_x86_64:/ # which crash_dump64 /apex/com.android.runtime/bin/crash_dump64可以看到&#xff0c;crash_dump放在了/apex/com.android.runtime下面。但是这个目录下的文件即使remount了也无法修改&#xff0c;而是需要通过/system/apex来…

1.2 海思SS928开发 - 开发环境 - 工具链安装

1.2 开发环境 - 工具链安装 为了方便使用&#xff0c;计划将工具链做成 SS928 SDK 仓库的一部分&#xff0c;并编写一个安装脚本。 创建仓库 在 gitlab 上创建 SS928 SDK 仓库&#xff0c;并命名为 SS928_SDK_G7.3_K4.19&#xff0c;其中 G7.3 代表 gcc 版本为 7.3&#xff0…

OpenHarmony轻量系统开发【12】OneNET云接入

12.1 OneNET云介绍 通常来说&#xff0c;一个物联网产品应当包括设备、云平台、手机APP。我将在鸿蒙系统上移植MQTT协议、OneNET接入协议&#xff0c;实现手机APP、网页两者都可以远程&#xff08;跨网络&#xff0c;不是局域网的&#xff09;访问开发板数据&#xff0c;并控制…

如何在阿里云主机上安装FreeBSD14系统

文章目录 在阿里云主机上安装FreeBSD14系统准备阿里云云主机识别目标磁盘下载 FreeBSD14解压缩 FreeBSD14系统镜像创建可启动的磁盘启动 FreeBSD14在阿里云主机上安装FreeBSD14系统 阿里云主机不支持 FreeBSD14 系统的镜像,因此需要手动进行安装。 准备阿里云云主机 在阿里云…

项目_预览和模拟器运行_真机运行鸿蒙应用---HarmonyOS4.0+鸿蒙NEXT工作笔记002

然后再来看如何使用预览,可以看到 右侧有个preview,点开就可以了 然后再有一个tools,这里 Device Manager,这个是模拟器 点开以后可以看到让我们连接,本地模拟器,还是远程模拟器,还是远程设备 这里我们选择phone 如果选择remote device,这个需要登录华为账号,会自动弹出来登…

前端网络---http协议演变

http协议的演变 什么是http协议&#xff1f; HTTP 协议全称为 Hypertext Transfer Protocol&#xff0c;即超文本传输协议&#xff0c;是互联网上应用最为广泛的一种网络传输协议 http协议演变 1991年0.9版本-------1996年1.0版本-------1997年1.1版本--------2015年2版本-…

探索SQL深入理解数据库操作的关键概念与技巧【文末送书】

文章目录 SQL语言从入门到精通入门篇进阶篇高级篇深入理解SQL SQL语言从入门到精通&#xff08;软件开发视频大讲堂&#xff09;【文末送书】 SQL语言从入门到精通 SQL&#xff08;Structured Query Language&#xff0c;结构化查询语言&#xff09;是一种用于管理关系型数据库…

Linux命令-du命令(显示每个文件和目录的磁盘使用空间)

说明 du命令 也是查看使用空间的&#xff0c;但是与df命令不同的是Linux du命令是对文件和目录磁盘使用的空间 的查看&#xff0c;还是和df命令有一些区别的 语法 du(选项)(参数)选项 -a, --all 显示目录中个别文件的大小。 -B, --block-size大小 使用指定字节数的块 -b, -…

数据结构-贪心策略(贪心算法)

贪心算法 1.贪心算法的核心思想 局部最优思想:在每一步决策时做出对当前看起来最优的解,并且期望这些局部最优的选择能成全全局最优解.全局最优构造:对于给定的问题&#xff0c;其全局最优解可以通过将问题分解为一系列子问题&#xff0c;然后在每个子问题上独立做出贪心选择来…

李飞飞团队发布《2024年人工智能指数报告》,预测人工智能未来发展趋势

昨天&#xff0c;斯坦福大学 Human-Center Artificial Intelligence (HAI)研究中心发布了《2024年人工智能指数报告》。 由斯坦福大学发起的人工智能指数&#xff08;AI Index&#xff09;是一个追踪 AI 动态和进展的非营利性项目&#xff0c;旨在全面研究 AI 行业状况&#xf…

Android Framework 常见解决方案(29)添加应用开发的共享库

1 原理说明 通过设置配置文件public.libraries.txt以及在system分区下添加so动态库的方式&#xff0c;让系统扩展动态库。关于动态库的拷贝较为简单&#xff0c;直接配置即可&#xff0c;这里主要解读下配置文件public.libraries.txt。 1.1 public.libraries.txt配置文件是什…