Elegant gunzip of tar Contents

I am faced with a situation where I have directories of gunzipped contents bundled into a tar file. It might look something like this.
x coop/batch/bin/ha90x20.gz, 632641 bytes, 1236 tape blocks
x coop/batch/icm/HA90X20.icm.gz, 1821 bytes, 4 tape blocks
x coop/batch/aeenv.gz, 4117 bytes, 9 tape blocks
x lib/libiclm.a.gz, 5998416 bytes, 11716 tape blocks
x lib/libiclm.sl.gz, 5260938 bytes, 10276 tape blocks
x lib/libime.a.gz, 5816597 bytes, 11361 tape blocks
x lib/libime.sl.gz, 4856468 bytes, 9486 tape blocks
x lib/libimisc.a.gz, 5497949 bytes, 10739 tape blocks
x lib/libimisc.sl.gz, 4591464 bytes, 8968 tape blocks
x lib/libipc.a.gz, 1250457 bytes, 2443 tape blocks
x lib/libipc.sl.gz, 1102578 bytes, 2154 tape blocks
x lib/libipr.a.gz, 5148901 bytes, 10057 tape blocks
x lib/libipr.sl.gz, 4334738 bytes, 8467 tape blocks
This is a small sample, we always have quite a bit more that could be completely different files. Anyway, we have always done a "tar xvf" on the tar files, followed by a find and gunzip of all files that are gunzipped. A problem has arose where there are files that already exist that the customer has gzipped. Is there an elegant way I can pipe the contents of the tar files through gunzip so that I only gunzip the contents of the tar file all in one fell swoop.

I have tried something like this but the gunzip never executes, I receive no errors, it just does not seem to execute.
ls *.tar | while read tarfilename
do
tar xvf ${tarfilename} |awk '{print $2}' |sed 's/,//g' |xargs -i gunzip -fdrv {}
done

I am on HPUX. I am leaning toward the need to write the output of the tar command to a file and work from that, but why can I not use that output on the fly? Thanks in advance.

...

Now I know why Im not going to change my way of working:
Make a tar file first then gzip
using it is:
gzcat <tarfile>.tar.gz |tar -tvf - (or xvf...)

Normally this is how I work as well. But there were space constraints on the server where they did not have room to create the tar file first without first gzipping all the files.

Anyway, I found a solution and thought I would post my findings if someone faces a similar situation. Seems tar's output is standard error rather than standard out. Notice the change to how I am piping the output.

ls *.tar | while read tarfilename
do
tar xvf ${tarfilename} 2>&1| awk '{print $2}' |sed 's/,//g' |xargs -i gunzip -fdrv {}
done