Using Picard is a good idea, the only problem it seems you need to create some temporary files since it does not support using unix pipes.
One of the possibilities is also writing a script to do it, but it is going to be more complex than just one liner in awk. It also depends on how you want to sort your reads, do you want all the reads in the same read group, or do you want to add multiple groups based on additional information (lane, clusters). Adding such information can prove useful in downstream analysis if you're using Genome Analysis Toolkit for quality score recalibration or something like that.
For the script part you first need to add an additional line to the header of the file. This line describes the read group like this:
@RG ID:R-0 PL:Illumina PU:0 LB:R SM:GM12878_GABP
Than for each read belonging to this group you need to add to the end of line (be careful, cells are tab delimited):
Some easy script for this probably already exists somewhere, but also rewriting it anew shouldn't be a big difficulty.