Mam następujący ciąg w bash o długości> 4jak wyodrębnić podciągu w bash
str = "abcdefghijklmno"
i chcę, aby wyodrębnić w str2
pierwszy charachter z str
5. Więc
str2="abcde"
Jak to zrobić z bash?
Mam następujący ciąg w bash o długości> 4jak wyodrębnić podciągu w bash
str = "abcdefghijklmno"
i chcę, aby wyodrębnić w str2
pierwszy charachter z str
5. Więc
str2="abcde"
Jak to zrobić z bash?
Czy użyć wyrażenia
{string:position:length}
Więc w tym przypadku:
$ str="abcdefghijklm"
$ echo "${str:0:5}"
abcde
Zobacz inne zwyczaje:
$ 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
albumu:
- 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 bez użycia "zewnętrznego" polecenia. :) byłoby lepiej, aby umieścić wynik na 'str2', jak OP chciał. – Kent
To odpowiednia odpowiedź, ale proponuję inne odniesienie - ABS jest uważany za źródło błędów, a nie mądrość, przez #bash freenode. Rozważ http://mywiki.wooledge.org/BashFAQ/073 –
Nie wiedziałem, że web, @CharlesDuffy, podoba mi się ten link, więc zmieńmy to. Dzięki! – fedorqui
możesz zrobić "man bash", aby zobaczyć listę komend dla tego typu rzeczy – user1527227