🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: es.comp.os.linux.programacion
Article #1406

Re: Como simplifico este script bash...

#1406
From: Alberto Cabello Sanchez
Date: Wed, 07 Dec 2005 08:42
68 lines
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-mail
References: <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>