Shell中字符处理

Shell中字符处理

1, 有关变量声明的字符串赋值。

  1. ${VALUE:-WORD}:当变量未定义或者值为空时,返回值为WORD的内容,否则返回变量的值。
  2. ${VALUE-WORD}:当变量未定义时,返回值为WORD的内容,否则返回变量的值。
  3. ${VALUE:=WORD}:当变量未定义或者值为空时,返回WORD的值的同时并将WORD赋值给VALUE,否则返回变量的值。
  4. ${VALUE=WORD}:当变量未定义时,返回WORD的值的同时并将WORD赋值给VALUE,否则返回变量的值。
  5. ${VALUE:+WORD}:当变量已赋值,并且非空时,其值才用WORD替换,否则不进行任何替换。
  6. ${VALUE+WORD}:当变量声明时,其值才用WORD替换,否则不进行任何替换。
  7. ${VALUE:?MESSAGE}:当变量已声明并且不为空时,正常替换。否则将消息MESSAGE送到标准错误输出(若此替换出现在SHELL程序中,那么该程序将终止运行)。
  8. ${VALUE?MESSAGE}:当变量声明时,正常替换。否则将消息MESSAGE送到标准错误输出(若此替换出现在SHELL程序中,那么该程序将终止运行)。
  9. ${!varprefxi*},${!varprefix@}: 匹配之前所有以varprefix开头进行声名的变量名称。

2, 有关字符串处理的特殊写法

        1. ${#String}: 获取$String的长度。

        2, ${string:position}: 在$String中,从位置position开始提取子字符串。

        3, ${string:position:length}:在$String中,从位置position开始提取长度为length的子字符串。

        4,${string#substring}: 在$string中,从左到右最小匹配substring。并删除匹配到的字符。

        5,${string##substring}: 在$string中,从左到右最大匹配substring。并删除匹配到的字符。

        6,${string%substring}: 在$string中,从右到左最小匹配substring。并删除匹配到的字符。

        7,${string%%substring}: 在$string中,从右到左,最大匹配substring,并删除匹配到的字符。

        8,${string/substring/replacement}: 在$string使用replacement代替第一个匹配到的substring.

        9,${string//substring/replacement}: 在$string使用replacement代替所有匹配substring的字符。

       10,${string/#substring/replacement}: 如果$string的前缀匹配substring,那么就用replacement代替匹配到的substring。

        11,${string/%substring/replacement}; 如果$string的后缀匹配substring,那么就用replacement代替匹配到的substring。

3, 有关expr表达式

         1,expr match "${string}" 'substring':  在$string从头开始匹配substring的长度。

          2,expr "$string" : '$substring' : 在$string 中,从头开始匹配substring的长度。

          3,expr index "$string"  'substring':在$string中,从头开始匹配substring的第一个字符出现的位置。

          4,expr substr $string position length: 在$string中,从位置position 开始抽取长度为length的子字符串。

          5,expr match "$string" '\(substring\)':  在$string中,从左到右提取符合正则表达式substring的子字符串。

          6,expr "$string" : '\(substring\)' : 如上。从左到右从$string中提取符合正则表达式的substring的子字符串。

          7,expr match "$string" '.*\(substring\)': 从结尾开始,在$string中提取符合 正则表达式substring的子字符串。

          8,expr "$string" : '.*\(substring\)': 从结尾开始,在$string 中提取符合正则表达式substring的子字符串。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值