Linux 常用文本处理实例

Linux 常用文本处理实例


判断MAC地址是否合法

MAC地址在OpenWRT中还是经常遇见的,因此有必要掌握对他的格式校验,首先我们必须确定MAC的输入格式,此处以xx:xx:xx:xx:xx(12位加冒号)为例为了判断输入的字符串是否符合该格式,可以结合正则表达式进行如下判断,其中正则表达式[]中的表示匹配小写字母a-f,数字0-9,大写字母A-F中的任意字符,该范围也是组成MAC地址的范围,其他均为非法,{}中的2表示匹配这样的字符2次

#!/bin/bash
mac_str="11:22:33:44:55:66"                                                                                                                                                                  
echo $mac_str | grep -oE '[a-f0-9A-F]{2}:[a-f0-9A-F]{2}:[a-f0-9A-F]{2}:[a-f0-9A-F]{2}:[a-f0-9A-F]{2}:[a-f0-9A-F]{2}' > /dev/null
if [ $? = 0 ];then
    echo "mac is ok"
else
    echo "mac is error"
fi

判断IP是否合法

IP地址也是linux系统中常见的格式,

  • 修改JSON字符串中的value值
    json在linux世界当中作为配置文件还是比较常见的,下面介绍在bash环境下使用脚本通过key修改value的值
配置文件config.json内容如下
{
    "local_address":"0.0.0.0",
    "local_port":1080,
    "method":"aes-256-cfb",
    "server_port":9003,
    "server":"47.90.67.206",
    "password":"Maft0ic7cyam9ib"
}

key="server";
value="11.22.33.44";
cat config.json | sed "s/\"${key}\":\"[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\",/\"server\":\"$value\",/g"

大小写转换

大小写转化需要用到tr命令

  • 大写转小写
local mac_up="AA:BB:CC:DD:EE:FF";
local mac_low=`echo $mac_up | tr '[A-Z]' '[a-z]'`
echo $mac_low
  • 小写转大写
local mac_low="aa:bb:cc:dd:ee:ff";
local mac_up=`echo $mac_up | tr '[a-z]' '[A-Z]'`
echo $mac_up

进制转换

  • 十进制转换成二进制
echo 256|awk -F. '{for(i=1;i<=NF;i++){a="";b=$i;while(b){a=b%2 a;b=int(b/2)}printf("%08d%s",a,i!=NF?".":"\n")}}'
  • 二进制转换成十进制
echo 00000001.00000001.00000001.00000001 |awk -F. 'function bin2dec(a,b,i,c){b=length(a);c=0;for(i=1;i<=b;i++){c+=c;if(substr(a,i,1)=="1")c++}return c}{for(j=1;j<=NF;j++)printf("%d%s",bin2dec($    j),j!=NF?".":"\n")}'
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值