linux =~ shell

本文详细介绍了如何在Shell脚本中使用正则表达式进行字符串匹配,包括变量引用、测试条件设置及参数传递等关键操作。通过具体示例,读者可以学习到如何有效利用正则表达式进行IP地址验证和项包含检查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#1
The =~ Regular Expression match operator no longer requires quoting
of the pattern within [[ … ]].

把测试条件换成下面这样就成功了。

if [[ “$newip” =~ ^([0-9]{1,3}.){3}[0-9]{1,3}$ ]];then
….
fi
使用变量的时候,是可以使用引号的:

newip=’192.168.1.100’
reg=’^([0-9]{1,3}.){3}[0-9]{1,3}$’
if [[ \$newip =~ \$reg ]]
then
echo ‘找到了ip地址’
fi

note: above “\” does not need, but if remove them, “$” will disappeared.

但是,对于 $reg 这个变量,在 [[]] 操作符中,就不能加上双引号,否则也会不匹配。

#2
item=”11”
contain =”11,22,33,44”
if [[ $contain =~ $item ]]
then
echo “item is included in contain”
fi

# above code which is used to check if contain inlaced item

note: pass parameters to scripts of shell
while
IFS= read line
do
echo $line
done < data.file

note: remove blank row below
tr -s ‘\n’

# if contain space in the row, need blow code:
IFS=$’\n’

for line in cat test.log
do
echo $line
done

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值