shell编程字符串数字提取

需求分析:data含有确定字段,不确定位置,先使用单字符替换字段,然后分割,确定是否为数字

#!/bin/bash

a=ATEST
b=BTEST
c=CTEST

data="ATEST 2 | BTEST 3 | D 4 "
# 字符替换
data=$(echo  $data | sed -e 's/'${a}'/F/' -e 's/'${b}'/S/' -e 's/'${c}'/Y/')
# data=${data/${delay} ${unkown}/F S}
echo $data

# 分割获取数字
aCount=$(echo $data|cut -d 'F' -f 2 | cut -d '|' -f 1) # 使用命令行赋值需要$()
bCount=$(echo $data|cut -d 'S' -f 2 | cut -d '|' -f 1)
cCount=$(echo $data|cut -d 'Y' -f 2 | cut -d '|' -f 1)

# 不含有的字段分割不对,进行判断
if [ "$aCount" -gt 0 ] 2>/dev/null ;then 
      echo aCount: $aCount
else 
       aCount=0
fi 

if [ "$bCount" -gt 0 ] 2>/dev/null ;then 
      echo bCount: $bCount
else 
       bCount=0
fi 

if [ "$cCount" -gt 0 ] 2>/dev/null ;then 
      echo cCount: $cCount
else 
      cCount=0
fi 

echo aCount: $aCount bCount: $bCount cCount: $cCount

结果输出

F 2 | S 3 | D 4
aCount: 2
bCount: 3
aCount: 2 bCount: 3 cCount: 0
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值