Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 22 Dec 2008 05:11:03 +0100
From:      Polytropon <freebsd@edvax.de>
To:        Giorgos Keramidas <keramida@ceid.upatras.gr>
Cc:        Gary Kline <kline@thought.org>, freebsd-questions@freebsd.org
Subject:   Re: Sed question
Message-ID:  <20081222051103.79a822e6.freebsd@edvax.de>
In-Reply-To: <87skogj37n.fsf@kobe.laptop>
References:  <20081221053407.GA87868@thought.org> <877i5unkx4.fsf@kobe.laptop> <1229854084.6392.52.camel@ethos> <20081221140658.GA24691@marge.bs.l> <20081221222744.GA28185@thought.org> <87skogj37n.fsf@kobe.laptop>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 22 Dec 2008 05:31:08 +0200, Giorgos Keramidas <keramida@ceid.upatras.gr> wrote:
> On Sun, 21 Dec 2008 14:27:44 -0800, Gary Kline <kline@thought.org> wrote:
> > 	  perl -pi.bak -e 's/OLDSTRING/NEWSTRING/g' file1 file2 fileN
> >
> > 	  that i swiped somewhere.  [?]
> >
> > 	  last night i was up until the wee hours coding or extending
> > 	  a c++ program to assist in this stuff.  while i really get
> > 	  off on hacking code, it's less of a thrill at 02:10, say:_)
> 
> You don't need C++ for this.  If you don't mind the verbosity, Python
> can do the same thing with:
> 
>   #!/usr/bin/env python
> 
>   import sys
> 
>   skiplines = [1, 3]              # line numbers that should be skipped
>   lc = 0
>   for l in sys.stdin.readlines():
>       lc += 1
>       if not (lc in skiplines):
>           print l,
> 

Interesting example. The same could be achieved using awk:

	awk '(NR != 1 && NR != 3)' <sourcefile>

NR specifies the number of record (input line). But I still
think the sed in-place editing method is the most comfortable
one, allthough your example raises my interest in learning Python.



-- 
Polytropon
>From Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20081222051103.79a822e6.freebsd>