У меня есть следующая строка в Баш с длиной> 4как извлечь подстроку в Баш
str = "abcdefghijklmno"
, и я хочу, чтобы извлечь в str2
5 первых charachter из str
. Таким образом,
str2="abcde"
Как это сделать с помощью bash?
У меня есть следующая строка в Баш с длиной> 4как извлечь подстроку в Баш
str = "abcdefghijklmno"
, и я хочу, чтобы извлечь в str2
5 первых charachter из str
. Таким образом,
str2="abcde"
Как это сделать с помощью 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
+1 для без использования« внешней »команды. :) Лучше бы поставить результат на 'str2', как пожелал OP. – Kent
Это правильный ответ, но я бы предложил другую ссылку - ABS считается источником ошибок, а не мудрости, #bash freenode. Рассмотрите http://mywiki.wooledge.org/BashFAQ/073 –
Не знал, что сеть, @CharlesDuffy, мне нравится эта ссылка, поэтому давайте ее изменим. Благодаря! – fedorqui
вы можете сделать 'man bash', чтобы увидеть список команд для этого типа вещей – user1527227