On Fri, 20 May 2011 17:39:22 +0200 Jeroen Roovers <j...@gentoo.org> wrote:
> for a while now I've been wondering if all those sed scripts in all > those ebuilds are really effective. > > To find out, I've tried a couple of angles on a sed hook that basically > dissects the sed command line provided, divides everything up into sed > scripts, files being processed and other options, and runs everything > through diff to get some meaningful QA output as to the effective use > of the sed scripts invoked. > > Of course some of the time a sed script falsely seems to be ineffective, > but could be, when it uses some variable or output that varies depending > on the platform you run it on, like with the likes of $(get_libdir). > > I've looked into sed's internal solutions to no avail, but something > like -i[SUFFIX] might help, since it gives you a backup file to compare > with the file that's being streamed. > > The idea is to pass the result to > | diff -u $file $file[SUFFIX] > to figure out what was changed, and what sed script changed it. > > Any help? Sorry, old thread. :) You can use the 'w' flag to write a log file of lines changed. This includes lines changed where the replacement ended up the same as the text matched (eg. lib->$(get_libdir)). Which means you can do something like: dirtyepic@tundra ~ $ cat test foo foobar bar foobarfoo dirtyepic@tundra ~ $ sed -i -e 's:foo:foo:gw /dev/stdout' test | wc -l 3 I think only gnu sed can do the stdout thing. -- fonts, gcc-porting, it makes no sense how it makes no sense toolchain, wxwidgets but i'll take it free anytime @ gentoo.org EFFD 380E 047A 4B51 D2BD C64F 8AA8 8346 F9A4 0662
signature.asc
Description: PGP signature