On Thu, Nov 27, 2008 at 2:37 PM, Stephen Harris <lists@xxxxxxxxxx> wrote: > On Thu, Nov 27, 2008 at 01:56:11PM -0500, Erick Perez wrote: >> So far, cut returns the name up to the space, so in this case it will >> return Kimaura and not Kimaura Thomas. > > No, it doesn't. > >> # for linia in `cat /etc/passwd` > > This is your mistake. Think about it > for linia in `cat /etc/passwd` > do > echo Line just read: $linia > done > > That shows what is going wrong; the "in" is splitting at the white space. > > What you should be doing > cat /etc/passwd | while read linia > instead. > > Even better would be > while read linia > do > .... > done < /etc/passwd > > Or, to rewrite the whole program in a one line awk script: > > awk -F: '{printf("zmprov ma %s@'$domain' displayName %s\n",$1,$5)}' /etc/passwd > $file > > -- > > rgds > Stephen > _______________________________________________ > CentOS mailing list > CentOS@xxxxxxxxxx > http://lists.centos.org/mailman/listinfo/centos > Stephen, you are right. i learned a bit more about "for" cycles and the blank space was being stripped. Rainer, some backquotes as you said were missing. So the code ends like this, and it works :)) #while read linia #do # user=`echo $linia | awk -F : '{ print $1 }'` # nombre=`echo $linia | awk -F : '{ print $5 }'` # echo "el nombre es $nombre" # echo "zmprov ma $user@$domain displayName $nombre">>$file # # x=$[x+1] #done < /etc/passwd Stephen, your single line awk command is wonderful. the while cycle takes about a minute (it is a very very long passwd file) the awk took less than 10 seconds .........I have so much to learn.... -- ------------------------------------------------------------ Erick Perez _______________________________________________ CentOS mailing list CentOS@xxxxxxxxxx http://lists.centos.org/mailman/listinfo/centos