Nahrazeni
Martin Mačok
martin.macok na underground.cz
Pátek Květen 4 12:08:33 CEST 2001
On Thu, May 03, 2001 at 01:17:48PM +0200, Lubor Kolar wrote:
> Zdravim konferenci a rad bych se zeptal na nasledujici (snad) trivialitu:
> mam vetsi mnozstvi txt souboru, ve kterych bych potreboval jeden konstantni
> text nahradit jinym (napr misto "Skunk s.r.o." tam dat "Skunk a.s."). Je
> nejaka jednoducha metoda, tak to udelat ve vsech tech souborech najednou?
Napsal jsem si kdysi na to takovy skriptik, mozna ho budete muset
trochu upravit, aby akceptoval vsechny pozadovane znaky v
nahrazovanych retezcich.
--
Martin Mačok
underground.cz
openbsd.cz
------------- další část ---------------
#!/bin/sh
# autor: martin.macok na underground.cz
# credits: "Pavel Janik ml." <Pavel.Janik na inet.cz>
# "Pavel Kankovsky" <peak na argo.troja.mff.cuni.cz>
# licence: GPL
# pouziti: greplace cesta co_nahradit cim_nahradit
VERSION=1.3
PATH=/bin:/usr/bin:/sbin
if [ "x$1" = "x--version" -o "x$1" = "x--help" ] || [ "$#" != "3" ] ; then
echo "GNU Replace verze $VERSION"
echo "pouziti: $0 cesta co_nahradit cim_nahradit"
exit
fi
if { ! expr match "x$2" "x[-a-zA-Z0-9_@#]*$" >/dev/null } ||\
{ ! expr match "x$3" "x[-a-zA-Z0-9_@#]*$" >/dev/null } ; then
echo "pracuji pouze s alfanumerickymi znaky a _-" >&2
exit
fi
FTMP=`mktemp /tmp/XXXXXX`
[ -z "$FTMP" ] && exit 1
find "$1" -type f -print | while read f ; do
if sed "s/$2/$3/g" <"$f" >"$FTMP" ; then
echo "$f ... zpracovan"
cat "$FTMP" >"$f"
else
echo "$f ... nelze zpracovat!"
fi
done
rm $FTMP
Další informace o konferenci Linux