Разбор файла CSV для добавления пользователей - PullRequest
0 голосов
/ 02 июня 2018

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

Я написал небольшой скрипт для добавления списка из 1000 пользователей.Я пытаюсь отсортировать своих пользователей по конкретным серверам, поэтому сейчас я пытаюсь перехватить строки 1-299, всех пользователей по полу.У меня был бы один сервер со всеми пользователями-мужчинами и один со всеми пользователями-женщинами.Кроме того, я должен добавить комментарии с их именами и фамилиями.CSV отформатирован:

af1001,afeni,freeborn,f,May 7 1994,IR_Iran,5,Centre_back,Nizhny_Novgorod_Stadium
md1707,melaya,dion,f,October 16 1996,Colombia,13,Sweeper,Mordovia_Arena
lm1540,leondre,metzner,m,September 27 1985,Germany,5,Centre_midfield,Kazan_Arena
jo1304,juelz,orengo,m,September 27 1999,France,23,Goalkeeper,Ekaterinburg_Arena

что у меня есть:

head -n 299 users.csv | grep -w f| cut -d ',' -f1 |  while read line; do sudo useradd “$line“ ; done

Конечно, это только добавляет пользователей, но не комментарий их имен.Я попробовал следующее:

head -n 299 selli049.csv | grep -w f| cut -d ',' -f1,2,3|  while read line; do sudo useradd -c “$line” $f1 ; done

Но это не сработало.Я довольно новичок в этом, поэтому ищу полезные советы.Благодарю.

1 Ответ

0 голосов
/ 02 июня 2018

Попробуйте:

# Set a target gender
target_gender='f'

# Cat your csv file and set the while separator to a comma, then assign each field to a variable
cat users.csv | while IFS="," read username first last gender date country number position field; do
  # If the gender matches the target add a user and set their comment to first and last name
  if [[ "${gender}" == "${target_gender}" ]]; then
    # -c adds a comment
    sudo useradd ${username} -c "${first} ${last}"
  fi
done

Дополнительное чтение:

Что такое IFS?

useradd manpage

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...