[ LUGOS ] find & replace

Andrej Komelj andrej.komelj na guest.arnes.si
Čet Feb 24 14:19:36 CET 2000


> 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