[CentOS] Need help in writing a shell/bash script
m.roth at 5-cent.us
m.roth at 5-cent.us
Fri Dec 30 16:41:47 UTC 2011
Hey, supergiantpotato (and btw, this list is plain text, not unicode, and
most of us don't read Japanese...),
å¤ç¥ãå²©ç· wrote:
> On 12/30/2011 09:00 PM, ankush grover wrote:
>>
>> I am trying to write a shell script which can merge the 2 columns into
>> 3rd one on Centos 5. The file is very long around 31200 rows having
>> around 1370 unique groups and around 12000 unique user-names.
>> The 1st column is the groupname and then 2nd column is the user-name.
>>
>> 1st Column (Groupname) 2nd Column (username)
>> admin ankush
>> admin amit
>> powerusers dinesh
>> powerusers jitendra
<snip>
> This will do what you want. But please read the comments in the code.
<snip>
> #######BEGIN collator.sh
<snip>
> INFILE=${1:?"Input filename missing, please read script comments."}
> OUTFILE=${2:?"Output filename missing, please read script comments."}
>
> awk '{print $1 ": "}' $INFILE | uniq > $OUTFILE
> for GROUP in `cat $OUTFILE | cut -d ':' -f 1`
> do for NAME in `cat $INFILE | grep $GROUP | awk '{print $2}'`
> do sed -i "s/^$GROUP: /&$NAME,\ /" $OUTFILE
> done
> done
> #######END collator.sh
This is really complicated and fiddly. Look at the one awk script that was
posted, which is *far* simpler, and uses awk the way it's intended to be
used, not as a replacement for cut....
mark
More information about the CentOS
mailing list