Shell 字符串截取 & 拼接

设变量str="https://en.wikipedia.org/wiki/Unix_shell"

截取操作符 # 删除左边字符串,保留右边字符串。

$ echo ${str#*//}
en.wikipedia.org/wiki/Unix_shell
$ echo ${str##*//}
en.wikipedia.org/wiki/Unix_shell

$ echo ${str#*/}*
/en.wikipedia.org/wiki/Unix_shell
$ echo ${str##*/}
Unix_shell

从上面的测试可以看出
${str#*/} 从左边开始删除到第一个"//"符号以及左边的所有字符串。
${str##*/} 从左边开始删除到最后一个"/"符号以及左边的所有字符串。

截取操作符% 删除右边的字符串,保留左边的字符串。

$ echo ${str%/*}
https://en.wikipedia.org/wiki
$ echo ${str%%/*}
https:
$ echo ${str%//*}
https:
$ echo ${str%%//*}5
https:

${str%/*} 从右边开始删除到第一个"/"符号以及右边的所有字符串。
${str%%/*} 从右边开始删除到最后一个"/"符号以及右边的所有字符串。

指定区间的截取${str:m:n} - 从左边第m个字符(左边第一个下标为0)开始,到左边的第n个字符。

$ echo ${str:0:6}
https:
$ echo ${str:2:6}
tps://

${str:m} - 从左边第m个字符开始,到最右边的所有字符串。

$ echo ${str:6}
//en.wikipedia.org/wiki/Unix_shell

${str:m-n:x} - 从右边的第(n-m)个字符开始,到右边的x个字符串。

$echo ${str:1-6:5}
shell

${str:m-n} - 从右边的第(n-m)个字符开始,直到右边结束。

echo ${str:1-6}
shell

如果设置m为0的话,就表示从右边第n个字符开始(右边的第一个字符表示为 0-1)。

设变量 str="hello"
如在字符串str后边拼接一个字符串

$ echo ${str}" world"
hello world

如拼接2个字符串

$ str1="world"
$ echo ${str}${str1}
helloworld

关于shell字符串截取和拼接的简单操作大致如此。

你可能感兴趣的:(Shell 字符串截取 & 拼接)