TGViewer
BashTex | Linux BashTex | Linux @bash_tex · 2.51K subscribers
Post #205 2.11K
Чтение файлов в массив без cat

Часто при работе с файлами в Bash используют cat и while read, но есть более элегантное решение - команда mapfile (она же readarray).

🌟 Почему mapfile удобнее?

Читает файл целиком в массив.
Избавляет от проблем с разбиением строк по пробелам.
Работает быстрее cat | while read.
Поддерживает фильтрацию и постобработку данных.


🌟 Как это работает? Допустим, у нас есть файл users.txt:


Vanya
Anna
Roman

Читаем его в массив одной командой:

```bash
mapfile -t users < users.txt


Теперь можно обращаться к строкам по индексам:


echo "Первый пользователь: ${users[0]}"
echo "Второй пользователь: ${users[1]}"


Первый пользователь: Vanya
Второй пользователь: Anna```

🌟 mapfile vs cat | while read. Обычный способ через while read ломает строки с пробелами:


while read user; do
echo "$user"
done < users.txt


Если строка "Vanya Ivanov", while read разобьёт её на "Vanya" и "Ivanov". А mapfile сохранит строку целиком.

🌟 Применение mapfile в реальных задачах

1️⃣ Удаление пустых строк из файла


mapfile -t lines < <(grep -v '^$' users.txt)


2️⃣ Чтение вывода команды в массив


mapfile -t processes < <(ps aux)


3️⃣ Чтение первых N строк


mapfile -t -n 5 top_lines < users.txt


BashTex 📱 #linux #utils
  • 🔥 15
  • 👍 1
More from @bash_tex
  1. Oct 13, 2026openat2(): как Linux защищает от выхода за пределы каталога Допустим, приложение должно чи…
  2. Oct 12, 2026xargs против while read: где быстрее и безопаснее Обе конструкции позволяют обработать спи…
  3. Oct 9, 2026BashTex 📱 #мем
  4. Oct 8, 2026Bridge FDB - как Linux bridge узнаёт, где находится MAC Linux bridge не знает заранее, за…
  5. Oct 7, 2026/dev/tcp - сетевое соединение средствами Bash В Bash есть малоизвестная возможность работа…
  6. Oct 6, 2026Ephemeral ports - почему заканчиваются исходящие TCP-порты Когда приложение устанавливает…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →