Чтобы разделить строку в Bash, вы можете использовать несколько методов. Вот несколько примеров:
Метод 1: использование переменной IFS (внутреннего разделителя полей) и команды чтения:
string="Hello World"
IFS=" " read -ra split <<< "$string"
В этом методе мы устанавливаем для переменной IFS (которая определяет разделитель полей) символ пробела. Затем мы используем команду readс опцией -a, чтобы прочитать входную строку и разбить ее на массив с именем split.
Метод 2: использование команды awk:
string="Hello World"
split=$(awk -v RS=" " '{print}' <<< "$string")
Здесь мы используем awkс пользовательским разделителем записей (RS), установленным на пробел. Команда awkразделяет входную строку и печатает каждый разделенный сегмент на новой строке. Мы фиксируем вывод с помощью подстановки команд $(...)и сохраняем его в переменной split.
Способ 3. Использование команды cut:
string="Hello World"
split=$(echo "$string" | cut -d " " -f 1-)
В этом методе мы используем команду cutдля разделения строки по разделителю. Параметр -dуказывает разделитель (в данном случае пробел), а параметр -fуказывает поля для извлечения. В этом примере мы используем -f 1-для извлечения всех полей.
Метод 4. Использование переменной IFS(внутреннего разделителя полей) и цикла for:
string="Hello World"
IFS=" " read -ra split <<< "$string"
for segment in "${split[@]}"
do
echo "$segment"
done
Здесь мы разделяем строку, используя тот же метод, что и в методе 1. Затем мы используем цикл forдля перебора каждого сегмента в массиве splitи выполняем любые желаемые действия.