Shell scripting помогает текстовому файлу в массив

#!/bin/bash function guest { i=0 while IFS = $'\n' read -r name; do GUESTS[i]="${name}" ((i++)) done<filename.txt } function print{ i=0 while ((${GUESTS[@]} > $i)) do echo "${GUESTS[i++]}\n" done } 

В коде, который я привел выше, я пытаюсь выполнить две функции, первая функция – взять любой текстовый файл со списком имен случайных людей (например, Bob \ n, Jennifer \ n, Caleb \ n , и т. д.) и преобразовать его в массив GUESTS. Код ДОЛЖЕН БЫТЬ В МАССИВЕ ГОСТЕЙ. Затем на 2-й функции следует распечатать массив GUESTS с каждым именем, имеющим собственную строку.

2 Solutions collect form web for “Shell scripting помогает текстовому файлу в массив”

Вы можете сделать это, используя встроенный mapfile :

 $ cat /tmp/file.txt Bob Jennifer Caleb $ mapfile -t guests < /tmp/file.txt $ printf '%s\n' "${guests[@]}" Bob Jennifer Caleb 

Для вашей первой функции Bash облегчил вам задачу. Вот вам все, что вам нужно сделать:

 readarray GUESTS < filename.txt 

Для второго он должен выглядеть примерно так:

 print () { for index in ${!GUESTS[@]}; do echo ${GUESTS[$index]} done } 
  • Обмен переменными в нескольких сценариях оболочки
  • В чем разница между результатами и эффективностью после добавления -f в rm и -print в поиске?
  • KSH / BASH Максимальный размер массива
  • Выравнивание при печати серии записей
  • проверьте, соответствует ли аргумент date в формате yyyy-mm-dd
  • Использование настраиваемого фильтра через скрипт для отклонения входящей электронной почты
  • пытаясь написать простой скрипт diff, чтобы сравнить 2 файла, а затем mv их в каталог
  • Назначение выбора текста переменной в сценарии bash
  • Как запустить сценарий при переключении между раскладками клавиатуры
  • Является ли скрипт оболочки языком программирования
  • Создание справки для цикла для zip-файлов с определенным суффиксом и расширением
  • Linux и Unix - лучшая ОС в мире.