zoukankan      html  css  js  c++  java
  • 【Shell基础】字符串删除

    案例:将金额18.中的点去掉,结果为18

    #!/bin/sh
    old_value=18. new_value=`echo ${old_value%%.*}` echo $new_value

    ${filename##*.}是什么意思呢?

    在 ${ } 中输入变量名称,两个##(或一个#),然后是通配符 ("*.")。

    1.#意思是从字符串的开始字符开始匹配,删除匹配部分。

    2.两个##代表匹配的最大长度,一个#代表匹配的最小长度(也就是说这里不是一个#匹配一个‘.’)

    // 获取后缀名tar.gz
    filename=testfile.tar.gz
    file=${filename#*.}
    echo $file
    // 获取后缀名gz
    filename=testfile.tar.gz
    file=${filename##*.}
    echo $file

    ${filename%%*.}是什么意思呢?

    在 ${ } 中输入变量名称,两个%%(或一个%),然后是通配符 (".*")。

    1.%就是从末尾字符串开始匹配,删除匹配部分。
    2.两个%%就是匹配最大长度,%就是匹配最小长度。
    //截取testfile.tar
    filename=testfile.tar.gz
    file=${filename%.*}
    echo $file
    //截取testfile
    filename=testfile.tar.gz
    file=${filename%%.*}
    echo $file

    截取任意的字符

     格式为${filename::}第一个':'后面的数字是字符串的索引从左边开始,索引从0开始,第二个':'后面的数字是长度,两处的数字都是十进制数值。
    //截取file 
    filename=testfile.tar.gz 
    file=${filename:4:4}
    echo $file
    // 截取test 
    filename=testfile.tar.gz
    file=${filename:0:4}
    echo $file

    参考文档:

    Bash shell字符串截取及命令替换

  • 相关阅读:
    vSphere笔记01~02
    【科普】人眼到底等于多少像素
    《标题党》自我修炼的10个秘籍
    说说云盘背后的黑科技!
    用shell批量编码转换
    Java课设--俄罗斯方块Tetris
    教程,Python图片转字符堆叠图
    谈谈索引的哲学思想
    MySQL索引实战经验总结
    博客要转型啦
  • 原文地址:https://www.cnblogs.com/badboy200800/p/10561939.html
Copyright © 2011-2022 走看看