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

Reply via email to