Shell script
Charles Steinkuehler
charles at steinkuehler.net
Wed Nov 12 00:15:18 CST 2003
brad wrote:
> Thanks for the help...that is exactly what I am wanting to do, but it is
> not working for me. When I go into vi and type :/g/>
> it won't let me hit tab then...I just get the beep that I am doing
> something wrong.
>
> Thoughts?
Likely due to some typo's...additional comments inline.
> Scott wrote:
>
>> A two step process
>>
>> Step #1 vi your FILE and then:
>>
>> :/g/(TABHERE)/s//|/g
>> :wq
Try this instead:
:%s/<tab>/|/g
:wq
The tab above is in the wrong location (where the command should be),
which is likely why vi is torqued.
>> This replaces the TAB with the | symbol. It's just an old habit of mine that
>> tends to make life easier for me sometimes. At least it's consistant.
>>
>> Step #2 Put in this shell script and run it with cat FILE|./SHELLSCRIPT
>>
>> #!/bin/sh
>> while read ALINE
>> do
>> IFS=|
You need at least a set command here, or the following parameter
expansions won't be as expected:
set -- $ALINE
>> /usr/sbin/useradd -c "$1 Account Whatever Comment Here" $1
>> echo $2 | /usr/bin/passwd --stdin $1
>> done
>>
>>
>> You may have to tweak around with this a touch.. But it should do the job for
>> you. The script creates the account with default settings and then puts the
>> password in for you using the passwd command. The --stdin option to passwd is
>> generally not documented well, if at all, but it's there in every distribution
>> I've used.
From "man passwd" on RHEL-3:
<quote>
--stdin
This option is used to indicate that passwd should read the new
password from standard input, which can be a pipe.
</quote>
--
Charles Steinkuehler
charles at steinkuehler.net
More information about the Kclug
mailing list