shell脚本截取字符串的操作,判断对应的字符串是不是数字

使用 Bash 的正则表达式匹配功能,但需要使用 [[ … =~ … ]] 语法,而不是 ==。

索引从 0 开始
echo ${var:0:5} 从左边第几个字符开始,及字符的个数
0 表示左边第一个字符开始,5 表示字符的总个数

var=http://www.123.com/567.html

huayu@LAPTOP-MBCTH7PD MINGW64 ~ (master)
$ echo ${var:0:5}
http:

$ echo ${var:7:3}#表示从第8个字符开始,3代表字符总个数
www

${line:10:1}
if 语句试图检查变量 line 的第 11 个字符(因为索引从 0 开始,所以 10:1 表示从第 10 个位置开始取 1 个字符)是否匹配一个数字字符

检查一个字符是否是数字

#!/bin/bash
echo ''>2.txt
 while read line
do
 	if [[ "${line:10:1}" =~ [0-9] ]]; then  
    echo "第11个字符是数字"  
    echo ${line:6:5} >>2.txt
else  
    echo "第11个字符不是数字"  
    echo ${line:6:3} >>2.txt
fi
done <1.txt

检查多个字符(而不仅仅是单个字符)是否全部是数字

while read line
do
if [[ "${line:10:n}" =~ ^[0-9]+$ ]]; then  
    echo "从第11个字符开始的n个字符全是数字"  
else  
    echo "从第11个字符开始的n个字符不全是数字"  
fi
done <1.txt
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值