On 10/25/2010 11:25 AM, Daniel Fetchinson wrote:
using python. The pattern is that the first line is deleted,
then 2 lines are kept, 3 lines are deleted, 2 lines are kept,
3 lines are deleted, etc, etc.
If you have GNU sed, you can use
sed -n '2~5{N;p}'
which makes use of the GNU "~" extension. If you need a more
portable version:
sed -n '1d;N;p;N;N;N;d'
Both have the side-effect that the expect the printed lines to
come in pairs, so if you have
seq 17 | sed -n '...'
it won't print the 17, but if you take it to 18, it will print 17
and 18. To address that (so to speak), you can use
sed -n '1d;p;n;p;N;N;N;d'
But I couldn't find a way to do this with sed and since the
whole operation is currently done with a bash script I'd hate
to move to python just to do this simple task.
I'm not sure this is a great reason to avoid Python, but whatever
floats your boat :)
However, if you have further sed questions, the sed mailing list
over at Yahoo! Groups is a friendly one and will keep the noise
down here.
-tkc
--
http://mail.python.org/mailman/listinfo/python-list