shell提取字符串中的数字保存到变量中

1.提取数字到变量

temp=`echo  "helloworld20180719" | tr -cd "[0-9]" `

echo $temp

输出 20180719

2.重定向到文件

echo  "helloworld20180719" | tr -cd "[0-9]">mid.txt

cat mid.txt

输出20180719

>表示 重定向输出到文件,如果文件不存在,会自动创建,如果文件存在,会清空文件。

>>表示追加输出到文件,同样,文件不存在就好创建,文件存在的话会追加新的内容到文件的末尾,原有内容不会影响到。

我们写脚本时经常会使用到>>将标准错误输出及信息重定向到日志文件中。

2>&1表示把 标准错误输出 重定向到 标准输出

&>file 意思是把 标准输出 和 标准错误输出 都重定向到文件file中

 

3.解释一下 | tr -cd "[0-9]" 

|其实就是管道描述符,将上个指令的标准输出。作为下个指令的标准输入

如echo  "helloworld20180719" | tr -cd "[0-9]"

意思就是将"helloworld20180719"这句话作为 tr -cd "[0-9]"的输入

tr其实是translate的缩写,主要用于删除文件中的控制字符,或进行字符转换

-d表示删除,[0-9]表示所有数字,-c表示对条件取反

所以tr cd "[0-9]"这句话的意思就是,剔除非数字的字符。

即输出20180719

  • 9
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值