最近需要使用shell处理下字符串,记录下shell中对字符串进行截取的详细方法
格式 | 说明 | 例子 (url="xuedingmiao.com") |
---|---|---|
${string: start :length} | 从 string 字符串的左边第 start 个字符开始,向右截取 length 个字符。 | echo ${url: 0: 11} ⬇️ ⬇️ ⬇️ xuedingmiao |
${string: start} | 从 string 字符串的左边第 start 个字符开始截取,直到最后。 | echo ${url: 12} ⬇️ ⬇️ ⬇️ com |
${string: 0-start :length} | 从 string 字符串的右边第 start 个字符开始,向右截取 length 个字符。 | echo ${url: 0-12: 4} ⬇️ ⬇️ ⬇️ ding |
${string: 0-start} | 从 string 字符串的右边第 start 个字符开始截取,直到最后。 | echo ${url: 0-8} ⬇️ ⬇️ ⬇️ miao.com |
${string#*chars} | 从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。 | echo ${url#*.} ⬇️ ⬇️ ⬇️ com |
${string##*chars} | 从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 右边的所有字符。 | echo ${url##*ding} ⬇️ ⬇️ ⬇️ miao.com |
${string%chars*} | 从 string 字符串第一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。 | echo ${url%.*} ⬇️ ⬇️ ⬇️ xuedingmiao |
${string%%*chars} | 从 string 字符串最后一次出现 *chars 的位置开始,截取 *chars 左边的所有字符。 | echo ${url%%miao*} ⬇️ ⬇️ ⬇️ xueding |
- "*" 是通配符可不要
- "#" 号截取右边字符
- "%" 截取左边字符