Step-by-step guide
Say you want to copy the first 3 messages. This can be done with:
% grib_copy -w count=1/2/3 in.grib out.grib
But it is better to write a rules file and use grib_filter:
my.filter
if (count < 4) { print "Copying message number [count]"; write; }
Then run this as follows:
% grib_filter -o out.grib my.filter in.grib
Of course you can make the IF condition more complicated:
if (count == 3 || count == 13) { write; # Write out message 3 and 13 only }
if (count % 2 == 0) { write; # Write out even-numbered messages, e.g., 2, 4, 6 etc }
Note: The "count" key starts from 1