Article View: es.comp.os.linux.programacion
Article #1406Re: Como simplifico este script bash...
From: Alberto Cabello Sanchez
Date: Wed, 07 Dec 2005 08:42
Date: Wed, 07 Dec 2005 08:42
68 lines
2811 bytes
2811 bytes
Horacio Castellini wrote:
> Holas como simplifico este script bash... es decir como anido los
> for...que no me doy cuenta... El bash tiene funciones para procesar cadenas?
>
> ==================================================================
> #!/bin/sh
> i=1
> for ano in 2003 2004 2005
> do
> for mes in January February March April
> do
> zcat $ano-$mes.txt.gz 1>/dev/null 2>/dev/null
> if [ $? != 0 ]; then
> echo "No existe $ano-$mes.txt.gz"
Mejor algo de este estilo:
if [ -f $ano-$mes.txt.gz ]
then
echo "Existe $ano-$mes.txt.gz"
else
echo "No existe $ano-$mes.txt.gz"
fi
> else
> echo "Procesando $mes $ano"
> zcat $ano-$mes.txt.gz|egrep '^(From: .*[^<].*|Subject:.*)' >t.dat
�Por qu� no usar zgrep?
> cat t.dat|perl -w filtro.pl >> $i.dat
�Por qu� no "perl -w filtro.pl < t.dat >> $i.dat"?
> echo $i
> fi
> done
> cat $i.dat|./op_matriz >ad.$i.dat
./op_matriz < $i.dat > ad.$i.dat
> i=`expr $i + 1`
> echo "--------------"
Lo puedes hacer mejor as� (creo):
mes[0]="December"
mes[1]="January"
mes[2]="February"
mes[3]="March"
mes[4]="April"
mes[5]="May"
mes[6]="June"
mes[7]="July"
mes[8]="August"
mes[9]="September"
mes[10]="October"
mes[11]="November"
for i in 0 1 2 3 4 5 6 7 8 9 10 11
do
for j in 0 1 2 3 4
do
echo ${mes[i+j]} (o mejor convirtiendo m�dulo 12)
done
done
Technical Details
Message-ID:
<dn6799$14d$1@appleseed.escomposlinux.org>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!t-online.de!newsfeed.freenet.de!newsfeed.kamp.net!news.musoftware.de!news-15.escomposlinux.org!tramontana.escomposlinux.org!appleseed.escomposlinux.org!escomposlinux.org!appleseed.escomposlinux.org!not-for-mailReferences:
<dn1h0r$496$1@helvete.escomposlinux.org>Show Full Headers
Complete Article Headers
X-Google-Thread: f86c8,a548bca6772dfe91 X-Google-Attributes: gidf86c8,public X-Google-Language: SPANISH,ASCII Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!border1.nntp.dca.giganews.com!nntp.giganews.com!newsfeed00.sul.t-online.de!t-online.de!newsfeed.freenet.de!newsfeed.kamp.net!news.musoftware.de!news-15.escomposlinux.org!tramontana.escomposlinux.org!appleseed.escomposlinux.org!escomposlinux.org!appleseed.escomposlinux.org!not-for-mail From: Alberto Cabello Sanchez <lagallina@unex.es> Newsgroups: es.comp.os.linux.programacion Subject: Re: Como simplifico este script bash... Date: Wed, 07 Dec 2005 09:42:13 +0100 Organization: Servidor Appleseed de Ecolnet Lines: 69 Message-ID: <dn6799$14d$1@appleseed.escomposlinux.org> References: <dn1h0r$496$1@helvete.escomposlinux.org> NNTP-Posting-Host: marmota.unex.es Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit X-Trace: appleseed.escomposlinux.org 1133944938 1165 158.49.4.202 (7 Dec 2005 08:42:18 GMT) X-Complaints-To: news@appleseed.escomposlinux.org NNTP-Posting-Date: Wed, 7 Dec 2005 08:42:18 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.11) Gecko/20050905 X-Accept-Language: es, en-us, en In-Reply-To: <dn1h0r$496$1@helvete.escomposlinux.org>