【发布时间】:2013-05-10 14:46:54
【问题描述】:
我在 bash 中有以下长度 > 4 的字符串
str = "abcdefghijklmno"
我想将str 的第5 个字符提取到str2。所以
str2="abcde"
如何用 bash 做到这一点?
【问题讨论】:
-
您可以通过
man bash来查看此类内容的命令列表
我在 bash 中有以下长度 > 4 的字符串
str = "abcdefghijklmno"
我想将str 的第5 个字符提取到str2。所以
str2="abcde"
如何用 bash 做到这一点?
【问题讨论】:
man bash 来查看此类内容的命令列表
请使用表达式
{string:position:length}
所以在这种情况下:
$ str="abcdefghijklm"
$ echo "${str:0:5}"
abcde
查看其他用法:
$ echo "${str:0}" # default: start from the 0th position
abcdefghijklm
$ echo "${str:1:5}" # start from the 1th and get 5 characters
bcdef
$ echo "${str:10:1}" # start from 10th just one character
k
$ echo "${str:5}" # start from 5th until the end
fghijklm
取自:
- wooledge.org - How can I use parameter expansion? How can I get substrings? How can I get a file without its extension, or get just a file's extension?
- Shell Command Language - 2.6.2 Parameter Expansion
【讨论】:
str2,如 OP 所愿。
${arg:0,5}(注意逗号),而我使用的是${arg:0:5}(冒号)。
echo ${f:0:-4}