Análise de um arquivo CSV para adicionar usuários

Análise de um arquivo CSV para adicionar usuários

Estou tendo problemas para analisar um arquivo CSV para adicionar usuários.

Escrevi um pequeno script para adicionar uma lista de 1.000 usuários:

export IFS=","

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

O arquivo CSV está formatado como:

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

No entanto, ao executar o script, ele percorre todo o arquivo repetindo:

useradd: invalid home directory '-u'

Usei export IFS para separar as palavras por vírgula e usá-las como parâmetros para o comando useradd.

Li o manual e usei o valor do diretório inicial, mas sinto que todo o meu script está errado.

Alguém pode me ajudar a formatar corretamente um script para adicionar usuários de um arquivo CSV?

Para referência usei este tópico como base:https://stackoverflow.com/questions/4439536/shell-script-to-parse-through-a-file-csv-and-process-line-by-line

Responder1

O erro ocorre porque você está chamando useraddcom a -dopção , que espera que a próxima palavra seja o caminho do diretório inicial ou o nome do diretório no diretório inicial padrão (não -u).

Como primeira sugestão, tente:

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

informação relacionada