zoukankan      html  css  js  c++  java
  • bash的内置字符串处理工具

    bash内置字符串处理工具:

    1、字符串切片:

        ${var:offset:number}  取字符串的子串;

        ${var:  -length}    取字符串的最右侧的length个字符。注意:冒号右侧必须有一个空白字符。

    演示:

    2、基于模式取子串:

      ${var#*word}:其中word是指定的分割符,功能:自左而右,查找var变量所存储的字符串中,第一次出现的word分隔符,删除字符串开头至此分隔符之间(包括分隔符本身)的所有字符;

      ${var##*word}:其中word是指定的分隔符;功能:自左而右,查找var变量所存储的字符串中,最后一次出现的word分隔符,删除字符串开头至此分隔符之间(包括分隔符本身)的所有字符;

    演示:

    如果是对路径进行分割的话,最后一个例子相当于取一个绝对路径的基名。

      ${var%word*}:其中word是指定的分隔符;功能:自右而左,查找var变量所存储的字符串中,第一次出现的word分隔符,删除此分隔符至字符串尾部之间(包括分隔符本身)的所有字符。

       ${var%%word*}:其中word是指定的分隔符;功能:自右而左,查找var变量所存储的字符串中,最后一次出现的word分隔符,删除此分隔符至字符串尾部之间(包括分隔符本身)的所有字符。

    演示:

    3、查找替换

      ${var/PATTERN/SUBSTI}:查找var所表示的字符串中,第一次被PATTERN所匹配到的字符串,将其替换为SUBSTI所表示的字符串;

      ${var//PATTERN/SUBSTI}:查找var所表示的字符串中,所有被PATTERN所匹配到的字符串,并将其全部替换为SUBSTI所表示的字符串;

    演示:

      ${var/#PATTERN/SUNSTI}:查找var所表示的字符串中,行首被PATTERN所匹配到的字符串,将其替换为SUBSTI所表示的字符串;

      ${var/%PATTERN/SUBSTI}:查找var所表示的字符串中,行尾被PATTERN所匹配到的字符串,将其替换为SUBSTI所表示的字符串。

        注意:PATTERN中要是有glob风格和通配符。

    演示

     

    支持使用glob风格的通配符

    4、查找删除

      ${var/PATTERN}:以PATTERN为模式从头部自左而右开始查找var字符串中第一次被匹配之间出现的全部字符,并删除之。

      ${var//PATTERN}:以PATTERN为模式从头部自左而右开始查找var字符串中最后一次被匹配之间出现的全部字符,并删除之 

      ${var/#PATTERN}:以PATTERN为模式,在var字符串中匹配行首出现的PATTERN字符,并删除之

      ${var/%PATTERN}:以PATTERN为模式,在var字符串中匹配行尾出现的PATTERN字符,并删除之

    演示:

    5、字符大小写转换

      ${var^^}:把var中的所有小写字符转换为大写

      ${var,,}:把var中的所有大写字符转换为小写。

    演示:

    6、变量赋值

       ${var:-VALUE}:如果var变量为空,或未设置,那么返回VALUE;否则,则返回var变量的值。

      ${var:=VALUE}:如果var变量为空,或未设置,那么返回VALUE,并将VALUE赋值给var变量;否则,则返回var变量的值。

      ${var:+VALUE}:如果var变量不为空,则返回VALUE;如果var变量为空,则返回为空。

      ${var:?ERROR_INFO}:如果var不为空,或未设置,那么返回ERROR_INFO为错误提示;否则,返回var值。

    演示:

  • 相关阅读:
    常用日期函数介绍
    常用数学函数介绍
    oracle 常用sql字符函数介绍
    centos6.5 相关命令
    Kettle5.4.0 java.lang.OutOfMemoryError
    oracle多表连接方式Hash Join Nested Loop Join Merge Join
    CONNECT_BY_ROOT
    设置Oracle PL/SQL时间显示格式NLS_TIMESTAMP_FORMAT
    INSTR代替NOT LIKE
    多表插入
  • 原文地址:https://www.cnblogs.com/FengGeBlog/p/10404021.html
Copyright © 2011-2022 走看看