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 } 
  • Cronjob запускает скрипт, который вызывает другой скрипт
  • Объяснение вывода скрипта
  • Как выполнять команды, последовательно эмулируя пользователя на терминале с помощью сценария оболочки
  • Передайте команду ROOT из сценария оболочки и оставив ее открытой
  • Поиск данных из всех файлов в папке
  • Как я могу запустить это в фоновом режиме и запустить 5 экземпляров?
  • Каковы некоторые из наиболее полезных алиасов и сценариев bash?
  • Список каталогов, затем файлы - с одной командой?
  • Вычитание с помощью значений в массиве
  • Все файлы не загружаются скриптом SFTP
  • Удаление определенного файла из файла tar
  • Linux и Unix - лучшая ОС в мире.