跨*niu平台字符串处理
linux下字符串截取是很常见的需求 这里有一些方法 列如 expr
1 2 |
expr substr $var start length ## 字符串起始值为0 |
expr 可以用来操作数字的加减乘除 列如 expr 1 + $a
but expr is a terrible command … 在mac系统上 expr根本不能调用substr命令 而且我们来man expr
下 直接翻到最后一页 我们可以看到
According to the POSIX standard, the use of string arguments length, substr, index, or match produces undefined results. In this version of expr, these arguments are treated just as their respective string values.
其实我们完全可以用别的方式来替代expr这糟糕的命令 shell本身自带了语法就可以进行这些操作
列如字符串截取我们可以用很多方法来替代
1 2 3 4 5 |
${var:0:2} ${var#*/} #字符串从头开始删除 懒惰匹配直到/ echo $var | cut -c 4- #起始值为1 echo $PATH | cut -d ':' -f 3,5 |
而数学运算我们也可以用$[1+$a]来处理
so easy….妈妈再也不用担心我跨平台了….