Как преобразовать файл строк, разделенных новой строкой, в массив

Проблема в самом конце сценария. Я опубликую ваш сценарий с исправлением.

измените "start _watcher" на "start", так как вы пытаетесь запустить функцию запуска.

2
01.09.2019, 14:25
3 ответа
$ set -f             # disable globbing
$ arr=($(<file.csv))
$ set +f             # enable globbing
$ declare -p arr     # print array content
declare -a arr=([0]="UserName" [1]="UserName" [2]="UserName")
  • arr=(…)создать массив
  • $(<file.csv)прочитать файлfile.csv(как$(cat file.csv))

Перед чтением файла необходимо отключить подстановку, чтобы предотвратить расширение имен пользователей такими символами, как *или ?или специальными шаблонами (расширение имени пути ).

Элементы разделяются символами новой строки, пробела или табуляции (при условии, что $IFSне были изменены )и не обрезаны.

3
27.01.2020, 21:50

Сmapfile:

$ mapfile -t array < yourfile

$ declare -p array # print array content
  declare -a array=([0]="UserName" [1]="UserName" [2]="UserName")
5
27.01.2020, 21:50
i=0
while IFS= read -r line
do
  var[i++]="$line"
done < filename

Здесь переменная массива var хранит все имена. Доступ к ним можно получить по

printf '%s\n' "${var[0]}"
printf '%s\n' "${var[1]}"
...
...

2
27.01.2020, 21:50

Теги

Похожие вопросы