jednoduchy scriptik

Martin Macok macok na kocour.ms.mff.cuni.cz
Pátek Říjen 29 10:47:41 CEST 1999


On Fri, 29 Oct 1999, Jozef C. Chocholacek wrote:

> "Ondřej Surý" wrote:
> > > > > find $PWD -print | while read f ; do
> > > > >         if [ -f "$f" ] ; then
> > > > >                 sed 's/srnec/myslivec/g' <"$f" >/tmp/tmp.$$
> > > > >                 mv /tmp/tmp.$$ "$f"
> > > > >         fi
> > > > > done
> > #!/bin/bash
> > zamen() { sed 's/srnec/myslivec/g' < $1 > /tmp/tmp.$$; mv /tmp/tmp.$$ $1; }
> > find $PWD -type f -exec zamen {} \;
> 
>   A este to pouzit ako root :) A modlit sa, aby nikto neurobil zopar
> linkov v /tmp na /etc/passwd :)))
> 
>   Ale to len tak na okraj :)

Ale jo ;-)), ten clovek chtel JEDNODUCHY SKRIPTIK! ;-)
Pro paranoiky predkladam tuto verzi:

#!/bin/bash
# program vezme vsechny regularni soubory v aktualnim a rekurzivne
# vnorenych adresarich ... verze 0.2 ;-)
# pouziti: script cesta co_nahradit cim_nahradit

PATH=/bin:/usr/bin:/sbin:
WDIR=/tmp/mojetmp.$$
NUM=0

if [ "$#" != "3" ] ; then
	echo "pouziti: $0 cesta co_nahradit cim_nahradit"
	exit
fi

umask 077

while   test -e "${WDIR}${NUM}" ; do
        NUM="$((NUM+1))"
done

if ! mkdir "${WDIR}${NUM}" ; then
        exit
fi

find "$1" -print | while read f ; do
	if [ -f "$f" ] ; then
		FTMP="${WDIR}${NUM}/tmp.$$"
		sed "s/$2/$3/g" <"$f" >"$FTMP"
		echo "pracuji na $f ..."
		mv "$FTMP" "$f"
	fi
done

rmdir  "${WDIR}${NUM}"

# KONEC

Doufam, ze je oukej ...

-- 
< Martin Mačok    (e) martin.macok na underground.cz  <ISO-8859-2-compatible> 
 \ (h) http://kocour.ms.mff.cuni.cz/~macok/  (w) http://underground.cz/ /
   \\\\\            any OS that doesn't make me look              /////
     \\\  like a random mouse-clicking idiot is a Good Thing (c)  ///



Další informace o konferenci Linux