Analizando un archivo CSV para agregar usuarios

Analizando un archivo CSV para agregar usuarios

Tengo problemas para analizar un archivo CSV para agregar usuarios.

Escribí un pequeño script para agregar una lista de 1000 usuarios:

export IFS=","

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

El archivo CSV tiene el formato:

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

Sin embargo, al ejecutar el script, recorre todo el archivo repitiendo:

useradd: invalid home directory '-u'

Utilicé export IFS para separar las palabras por coma y usarlas como parámetros para el comando useradd.

Leí el manual y utilicé el valor para el directorio de inicio, pero siento que todo mi script está desactivado.

¿Alguien puede ayudarme a formatear correctamente un script para agregar usuarios desde un archivo CSV?

Como referencia utilicé este hilo como base:https://stackoverflow.com/questions/4439536/shell-script-to-parse-through-a-file-csv-and-process-line-by-line

Respuesta1

El error se debe a que está llamando useraddcon la -dopción , que espera que la siguiente palabra sea la ruta del directorio de inicio o el nombre del directorio en el directorio de inicio predeterminado (no -u).

Como primera sugerencia, prueba:

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

información relacionada