Am Dienstag, den 08.01.2008, 16:23 +0100 schrieb Nils Philippsen: > On Mon, 2008-01-07 at 15:27 -0800, Andrew Farris wrote: > > Enrico Scholz wrote: > > >>>>> But python or other bloaty scripting languages are not a solution > > >>>>> and completely unacceptable at this place. > > >>>> "Bloaty" is something that could be solved, don't you think? > > >>> Not with python or perl. > > >> I've shown you the numbers. Why you still insist on it being bloated > > > > > > Resulting scripts will be much longer. E.g. how much lines of python > > > code are required for > > > > > > | sed '/^foo/s!/bin!/opt!' file | tac > > > > Looks like one line in python to me if you write a sed and tac replacement into > > your python library. (e.g. thats not about bash vs python at all...) > > If I'm not to try to emulate the single commands, but look at the whole > job which I understand as "read file, replace first occurrence of '/bin' > with '/opt' in lines beginning with 'foo', then put out the lines in > reversed order" it could be along this (and wouldn't use any external > module or program): > > print '\n'.join (reversed (map (lambda line: line[:3] == "foo" and line.replace ('/bin', '/opt', 1) or line, ''.join (open ('file').readlines ()).split ('\n')))) > > To make this more readable, I'd split this up and comment it: > > --- 8< --- > # read the file and split it at '\n' > lines = ''.join (open ('file').readlines ()).split ('\n') Yikes! Python just became Perl :) > > for i in range (len (lines)): > if line[:3] == 'foo': > # replace first occurrence of /bin with /opt > lines[i] = lines[i].replace ('/bin', '/opt', 1) > > print '\n'.join (reversed (lines)) > --- >8 --- > > Now the original sed can surely be changed that it would take more than > one line to emulate the line's function, but then I would feel > comfortable using (shipped) modules like "re" to achieve the same effect > as the shell code uses sed and tac. > > Nils > -- > Nils Philippsen / Red Hat / nphilipp@xxxxxxxxxx > "Those who would give up Essential Liberty to purchase a little Temporary > Safety, deserve neither Liberty nor Safety." -- B. Franklin, 1759 > PGP fingerprint: C4A8 9474 5C4C ADE3 2B8F 656D 47D8 9B65 6951 3011 > -- fedora-devel-list mailing list fedora-devel-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/fedora-devel-list