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 } 
  • Как я могу разобрать xml-файл с URL-адреса http без загрузки файла и распечатать нужную строку?
  • Как выбрать наивысший элемент числа во многих файлах со многими массивами
  • Собирайте файлы из нескольких разных каталогов и помещайте их в одно место
  • Убедитесь, что только root может редактировать скрипт перед его выполнением
  • Возьмите grep значение и выведите количество и значение вместе
  • команда find с несколькими шаблонами, не возвращающими никакого вывода
  • Скрипт для файлов SCP работает вручную, но не через cron
  • Преобразование цикла кода в функцию
  • Как скрипт знает путь к файлу .desktop, который запустил его?
  • перебирать файлы и отправлять строки в качестве позиционных параметров в другой файл
  • Как запустить команду SSH для установки StrictHostKeyChecking = no?
  • Interesting Posts

    Замените все вхождения строки, найденной в файле, используя значения из другого файла

    Тернарный оператор и печать

    Есть ли способ дать снегу на мой Linux-джеткот?

    Есть ли возможность установить родительский процесс при создании нового процесса?

    Как предотвратить cp от слияния двух одинаково названных каталогов?

    «Не может писать в файл batman adv kernel» при использовании «mac-address batctl p»,

    Что это значит: «Прерывание: контакт A, направленный в IRQ 17»

    Как я могу получить 1080p для работы на моем телевизоре с помощью HDMI с помощью xrandr?

    Медленная реакция клавиатуры в некоторых Distros

    Извлечь последнюю строку многострочной строки

    Как извлечь количество физических процессоров и потоков на ядро? (Нет текста, только номер для использования в качестве входных данных в другом месте)

    Отслеживание использования Интернета

    Как настроить заголовки электронной почты с помощью / usr / bin / mail?

    php показывает только обычный текст

    Что такое сделка с манди и бродячих кошек?

    Linux и Unix - лучшая ОС в мире.