Упрощение операций с файлом в массив в Bash: изучено несколько методов

Работа с файлами и массивами — обычная задача при написании сценариев bash. В этой статье блога мы рассмотрим различные методы извлечения содержимого файла и сохранения его в массиве, используя разговорный язык, а также предоставим примеры кода. К концу вы будете иметь в своем распоряжении ряд методов для эффективной обработки операций с файлами в массив.

Метод 1: чтение построчно с помощью цикла while
Самый простой подход — чтение файла построчно с использованием цикла while. Вот пример:

#!/bin/bash
file="example.txt"
array=()
while IFS= read -r line; do
    array+=("$line")
done < "$file"
echo "Array contents: ${array[@]}"

Метод 2: использование команды Mapfile
Bash предоставляет команду mapfile, которая считывает строки из файла в массив. Вот пример:

#!/bin/bash
file="example.txt"
mapfile -t array < "$file"
echo "Array contents: ${array[@]}"

Метод 3: использование команды readarray
Подобно mapfile, команду readarrayможно использовать для заполнения массива из файла. Вот пример:

#!/bin/bash
file="example.txt"
readarray -t array < "$file"
echo "Array contents: ${array[@]}"

Метод 4: использование подстановки команд
Другой способ сохранить содержимое файла в массиве — использовать подстановку команд. Вот пример:

#!/bin/bash
file="example.txt"
array=()
IFS=$'\n' array=($(<"$file"))
echo "Array contents: ${array[@]}"

Метод 5: использование цикла for
Мы также можем извлечь содержимое файла в массив с помощью цикла for. Вот пример:

#!/bin/bash
file="example.txt"
array=()
for line in $(<"$file"); do
    array+=("$line")
done
echo "Array contents: ${array[@]}"

В этой статье мы рассмотрели несколько методов извлечения содержимого файла и сохранения его в массиве с использованием сценариев bash. От чтения построчно с помощью цикла while до использования встроенных команд, таких как mapfileи readarray, или даже использования подстановки команд и циклов for — теперь у вас есть множество способов выбирайте, исходя из ваших конкретных потребностей. Эти методы, несомненно, упростят ваши операции с файлами и массивами и повысят вашу производительность при написании сценариев bash.

Не забудьте выбрать метод, который лучше всего соответствует вашим требованиям и стилю кодирования. Удачных сценариев!