linux expr对字符串的用法
1. 获取字符串的长度
expr length "字符串" expr "字符串" : ".*"
2. 查找字符串首次出现的位置
expr index "源字符串" "子字符串"
3. 从字符串的某个位置开始提取字符串
expr substr "源字符串" 开始位置(从1开始计算) 提取的长度
4. 使用冒号的模式匹配获取字符串的个数或者提取匹配到的字符串,正则表达式模式匹配串
返回字符串的长度,expr "字符串" : ".*" 获取匹配到的字符串,expr "字符串" : "(.*).tar.*",返回tar包的名字(不包含.tar.任意名),即,只是返回"("和")"中间的内容
附:
expr : expr 匹配运算符 :(冒号)将第一个参数与第二个参数进行比较,除非所有模式均固定在字符串的开头,否则必须按照国际化基本正则表达式 (basic regular expression, BRE) 进行匹配。 也就是说,只有从字符串第一个字符开始的序列才可按照正则表达式进行匹配。请参见 regex(5) 和“附注”部分。 通常,/usr/bin/expr 匹配运算符将返回匹配的字节数,/usr/xpg4/bin/expr 匹配运算符将返回匹配的字符数(匹配失败返回 0)。 如果第二个参数至少包含一个 BRE 子表达式 [(...)],则匹配运算符将返回与 1 相对应的字符串。
退出状态
作为表达式计算的副作用,expr 将返回以下退出值:
0 如果表达式既不是 NULL 也不是 0。 1 如果表达式为 NULL 或 0。 2 对于无效表达式。 >2 出现错误。