LINUX.ORG.RU

Как разбить строку по какому-нибудь символу

 


1

4

Есть строка:

str="1-2-3-4-5-6-7"
Хочу разбить строку по "-" при этом, я предполагаю, что в результате получится массив. Делаю так:
IFS="-" read -ra arr <<< ${str[@]}
Затем:
str_len=${#arr[@]}
Итого: str_len = 1 Вопрос: Что я делаю не так?


str="1-2-3-4-5-6-7"
arr=(${str//-/ })
srt_len=${#arr[@]}
echo $srt_len
7
hope13 ★★★
()
Последнее исправление: hope13 (всего исправлений: 4)
read -a arr <<< $(echo $str | tr '-' ' ')
Spoofing ★★★★★
()

str=«1-2-3-4-5-6-7»
IFS="-" read -ra arr <<< ${str[@]}

str это же не массив, вот так работает:

IFS="-" read -ra arr <<<"$str"

anonymous
()

Не понял в чем проблема собственно

$ str="1-2-3-4-5-6-7"
$ IFS='-' a=($str)
$ echo ${#a[@]}
7

anonymous
()
Вы не можете добавлять комментарии в эту тему: топик перемещен в архив.