Extrair os nomes é fácil: use o awk com -F
para imprimir o primeiro campo
awk -F, '{print }' input.csv
Para realmente adicionar usuários, você precisa ler a saída do awk, linha por linha. Uma maneira de fazer isso é como o Zanna mostra, com pipe para while read variable ; do . . . done
.
Alternativa seria aproveitar a função system()
do awk para criar o comando primeiro e passá-lo para a função. Considere isto:
$ awk -F ',' '{command=sprintf("useradd \"%s\"",);print command }' input.txt
useradd "alfred"
useradd "johnny"
Para cada linha extraímos a primeira palavra e a colocamos em useradd "%s"
. Isso pode ser dado à função system()
e será executado com /bin/sh
Executando isso como root:
$ awk -F ',' '{command=sprintf("useradd \"%s\" ",); system(command) }' input.txt
$ grep 'alfred' /etc/passwd
alfred:x:1001:1001::/home/alfred:
CUIDADO : system()
chamadas /bin/sh
, que no Ubuntu é um link simbólico para /bin/dash
. Portanto, evite bashisms no comando que você passar