clone.sh
download
#!/bin/sh
# DESCR: Clone existing files, handles CVS
# AUTHOR: Darek Cieslak, cieslakd at gazeta.pl
# USE: repl abd def | sh
#
# In ./.replfilter you can include sed commands to
# delete unwanted filenames. Example:
#
# /images\//d
#
# will ignore all files from images directory
TMP_FILE=$$
REPLFILTER=.replfilter
test -z "$1" -o -z "$2" && {
echo give from, to strings
exit 1;
}
if ! test -f $REPLFILTER
then
touch $REPLFILTER
fi
sFrom="$1"
sTo="$2"
FILES=*$sFrom*
find . -name "*$sFrom*" |
sed -f $REPLFILTER |
awk -v "sFrom=$sFrom" -v "sTo=$sTo" '
{
sFile = $0
sNewFile = $0
gsub(sFrom, sTo, sNewFile);
print "test -f " s New File " || "\
"sed \"s/" sFrom "/" sTo "/g\" " s File " > " sNewFile
}
'
(...)
Nie ma bowiem łatwych odpowiedzi.
Nie istnieje nic takiego jak najlepsze
rozwiązanie - zarówno jeśli chodzi o
narzędzia,
jak i języki czy systemy operacyjne. Są
jedynie systemy, które mogą być bardziej
odpowiednie w konkretnych okolicznościach.
I tu właśnie do gry wchodzi pragmatyzm.
Nie należy przywiązywać się do żadnej
określonej metody, ale mieć na tyle rozległą
wiedzę i doświadczenie, by w danej sytuacji
wybrać dobre rozwiązanie.
(...)
Andrew Hunt, David Thomas
"Pragmatyczny Programista"