Анализ CSV-файла для добавления пользователей

Анализ CSV-файла для добавления пользователей

У меня возникли проблемы с анализом CSV-файла для добавления пользователей.

Я написал небольшой скрипт для добавления списка из 1000 пользователей:

export IFS=","

cat users.csv | while read a b c d e f g; do useradd -d -u $a -U $d ; done

Файл CSV имеет следующий формат:

ps2946,male,Phil Harris,Recording,6508 Hollywood Blvd,Nov 16 1950,760 901 3537
mc3225,male,Mel Blanc,Radio,6385 Hollywood Blvd.,Oct 1 1983,626 647 5560
fn1029,male,Franklin Pangborn,Motion pictures,1500 Vine Street,Mar 10 1911,858 497 6108
we9602,undefined,Webb Pierce,Recording,1600 Vine Street,Sep 3 1988,559 595 6063

Однако при запуске скрипта он проходит по всему файлу, повторяя:

useradd: invalid home directory '-u'

Я использовал export IFS, чтобы разделить слова запятыми и использовать их в качестве параметров для команды useradd.

Я прочитал руководство и использовал значение для домашнего каталога, но у меня такое чувство, что весь мой скрипт неверен.

Может ли кто-нибудь помочь мне правильно отформатировать скрипт для добавления пользователей из CSV-файла?

Для справки я использовал эту ветку в качестве основы:https://stackoverflow.com/questions/4439536/shell-script-to-parse-through-a-file-csv-and-process-line-by-line

решение1

Ошибка возникает из-за того, что вы вызываете useraddс -dопцией , которая ожидает, что следующим словом будет путь к домашнему каталогу или имя каталога в домашнем каталоге по умолчанию (а не -u).

В качестве первого предложения попробуйте:

cat users.csv | while read a b c d e f g; do useradd -d "$a" -U "$d" ; done

Связанный контент