linux expr命令字符串操作

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 也不是 01
如果表达式为 NULL 或 02
对于无效表达式。

>2
出现错误。
原文地址:https://www.cnblogs.com/eric-geoffrey/p/4866098.html