shell编程字符串处理

Bash中的字符串处理


Bash支持一系列令人吃惊的数字和字符串处理。不幸的是这些工具缺乏统一的焦点/目的,
它们有些是参数替换(parameter substitution)的子集,其他的属于UNIX命令expr的功能。
这种情况导致了命令语法的不一致/统一 和 功能的重复实现,别提有多混乱了!

字符串长度(String Length)
${#string}
expr length $string
expr "$string" : '.*'

匹配的最小子串的长度(Length of Matching Substring at Beginning of String)
expr match "$string" '$substring'         # $substring is a regular expression
expr "$string" : '$substring'              # $substring is a regular expression

索引(Index)
expr index $string $substring
        匹配的第一个子串在主串中的位置,与C语言中的strchr()功能相似。

提取子串(Substring Extraction)
${string:position}
        提取$string中从$position开始到结尾的子串
        如果$string是”*”或”@”,则提取的是参数列表中$position开始到最后的所有参数
${string:position:length}
        提取从$position开始长度为$length的子串
        如果$string是”*”或”@”,则提取的是参数列表中$position开始的$length个参数
expr substr $string $position $length
        提取从$position开始长度为$length的子串
expr match "$string" '\($substring\)'       # $substring is a regular expression
expr "$string" : '\($substring\)'            # $substring is a regular expression
        提取匹配$substring的第一个子串
expr match "$string" '.*\($substring\)'      # $substring is a regular expression
expr "$string" : '.*\($substring\)'          # $substring is a regular expression
        提取匹配$substring的最后一个子串

删除子串(Substring Removal)
${string#substring}
        删除最前面匹配$substring的最短的子串
${string##substring}
        删除最前面匹配$substring的最长的子串
${string%substring}
        删除最后面匹配$substring的最短的子串
${string%%substring}
        删除最后面匹配$substring的最长的子串

替换子串(Substring Replacement)
${string/substring/replacement}
        把第一个匹配的$substring替换为$replacement
${string//substring/replacement}
        把所有匹配的$substring替换为$replacement
${string/#substring/replacement}
        如果主串开头匹配$substring则用$replacement替换它
${string/%substring/replacement}
        如果主串结尾匹配$substring则用$replacement替换它
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值