[ LUGOS ] find & replace

simon.golicnik na energetika-lj.si simon.golicnik na energetika-lj.si
Pet Feb 25 07:33:05 CET 2000


ali pa v eni vrstici:
find /dir -name "*.html" | xargs perl -pi'.bak' -e "s/niz1/niz2/"
potem pa bris *.bak filetov
LP Simon

> -----Original Message-----
> From:	Andrej Komelj [SMTP:andrej.komelj na guest.arnes.si]
> Sent:	Thursday, February 24, 2000 3:47 PM
> To:	lugos-list na lugos.si
> Subject:	Re: [ LUGOS ] find & replace
> 
> > find /direktorij -name "*html" -exec sed -e "s/niz1/niz2/g" {} \;
> 
> Vse lepo in prav, vendar sed izpise popravljene datoteke na stdout,
> kar pa verjetno ne zadosca. Poleg tega se lahko zgodi, da kje obstaja
> direktorij z imenom nekajhtml in sed na njem "crkne". Zatorej je
> potrebnega se nekaj packanja s tmp fajli.
> 
> Lahko nekaj takega:
> 
> #!/bin/sh
> TMPFILE=${TMPDIR-/tmp}/out.$$
> find /dir -name "*.html" -type f | {
> 	while read file; do
> 		sed "s/niz1/niz2/g" $file > $TMPFILE
> 		mv -f $TMPFILE $file
> 	done
> }
> 
> -- 
> Andrej.
> 
> ... Make headlines; use a corduroy pillow.




Dodatne informacije o seznamu Starilist