Несколько способов разделить строку в Bash с примерами кода

Чтобы разделить строку в 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и выполняем любые желаемые действия.