Linux Shell 字符串截取

时间:2022-09-01 21:03:31

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"
}
echo ${var%'END'*}