Shell 调用java程序返回的内容较多,想要获取正确的返回内容,通常需要截取。
假设有变量 VAR='DSADASD{"name":"123","age":"20"}sssslog4j warndasdasdasd'
json串是我们需要的内容
1. # 号截取,删除{左边字符,保留右边字符。
1
|
echo ${var#*'{' }
|
其中 var 是变量名,# 号是运算符,*'{' 表示从左边开始删除第一个 {号及左边的所有字符
结果是 :"name":"123","age":"20"}sssslog4j warndasdasdasd
2. %号截取,删除右边字符,保留左边字符
1
|
echo ${var%'}'*}
|
%'}'* 表示从右边开始,删除第一个 / 号及右边的字符
结果是:"name":"123","age":"20"
3. 从左边第几个字符开始,及字符的个数
1
|
echo ${var: 0 : 5 }
|
其中的 0 表示左边第一个字符开始,5 表示字符的总个数。
结果是:http:
4. 从左边第几个字符开始,一直到结束。
1
|
echo ${var: 7 }
|
5. 从右边第几个字符开始,及字符的个数
1
|
echo ${var: 0 - 7 : 3 }
|
6. 从右边第几个字符开始,一直到结束。
1
|
echo ${var: 0 - 7 }
|
1
|
echo ${var#*"START" }
|