Shel 检测合法的IP地址

本文介绍如何使用正则表达式验证IP地址的有效性,并通过实例演示了三种不同的方法,包括使用ifconfig命令、字符串操作以及正则表达式直接匹配。

IP地址的正则表达式为:

(([0-9]|[1-9][0-9]|1[0-9]{2\}|2[0-4][0-9]|25[0-5]).){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])'

1.利用电脑IP测试下:

ifconfig | grep --color -o  '\(\([0-9]\|[1-9][0-9]\|1[0-9]\{2\}\|2[0-4][0-9]\|25[0-5]\)\.\)\{3\}\([0-9]\|[1-9][0-9]\|1[0-9]\{2\}\|2[0-4][0-9]\|25[0-5]\)'

2. 利用字符串测试下:

mm="79171 DNS Resolve: img02.taobaocdn.com => 61.183.52.250 (from cache)"
ip=`echo $mm | grep -o '\(\([0-9]\|[1-9][0-9]\|1[0-9]\{2\}\|2[0-4][0-9]\|25[0-5]\)\.\)\{3\}\([0-9]\|[1-9][0-9]\|1[0-9]\{2\}\|2[0-4][0-9]\|25[0-5]\)' | wc -l`
if [ $ip -eq 1 ];then
    echo "valid ip"
else
    echo "invalid ip"
fi

3. 换一种方式,不用grep来匹配,而用~来匹配测试下:


iip="192.168.23.1"
if [[ $iip =~ ^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ ]]; then
    echo "ip"
else
    echo "invalid ip"
fi


### HBase Shell 命令及其用法 HBase 是一种分布式、面向列的开源数据库,其设计灵感来源于 Google 的 Bigtable 论文[^2]。HBase 提供了一个交互式的 Shell 工具用于管理和查询数据表。以下是关于 HBase Shell 中常用命令的详细介绍。 #### 查看帮助文档 用户可以通过 `help` 命令获取具体命令的帮助信息以及支持的所有功能列表。例如: ```bash help 'command_name' ``` 这将显示指定命令的作用和语法说明。如果想查看所有的可用命令,则可以运行以下命令: ```bash help 'hbase' ``` 此命令会列出所有被分类好的命令集合,其中包括 DDL 和 DML 类型的操作[^1]。 #### 数据定义语言 (DDL) 命令 这些命令主要用于创建、修改或删除表格及相关元数据。 - **create**: 创建新表 ```bash create 'namespace:table_name', {NAME => 'column_family_1'}, {NAME => 'column_family_2'} ``` - **list**: 列出当前存在的表 ```bash list ``` - **disable/enable**: 启用或者禁用某个特定表 ```bash disable 'namespace:table_name' enable 'namespace:table_name' ``` - **drop**: 删除已有的表(需先将其设置为不可用状态) ```bash drop 'namespace:table_name' ``` #### 数据操作语言 (DML) 命令 此类命令负责向表中插入记录、检索已有条目以及其他相关事务处理活动。 - **put**: 往某单元格写入值 ```bash put 'namespace:table_name', 'row_key', 'family:qualifier', 'value' ``` - **get**: 获取给定键对应的整行数据 ```bash get 'namespace:table_name', 'row_key' ``` 也可以附加额外参数来限定返回字段范围或其他条件约束,比如时间戳过滤器等[^3]: ```bash get 'briup:emp','10001',{COLUMN=>'f1',TIMESTAMP=>1628440440834} ``` - **scan**: 批量读取多行符合条件的数据项 扫描整个表并应用筛选逻辑时非常有用。下面的例子展示了如何结合过滤表达式实现精确匹配查找[^4]: ```bash scan 'test', FILTER=>"RowFilter(=,'binary:row1')" ``` 另外还有其他类型的过滤方式可供选择,如 FamilyFilter 等。 #### 高级特性与其他实用工具 除了上述基础 CRUD 功能外,HBase 还提供了一些高级选项满足更复杂场景需求,例如批量导入导出、快照管理等功能. ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值