🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

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

Re: Consulta Shell

#6987
From: Pascal Bourguignon
Date: Fri, 18 Apr 2003 00:57
56 lines
3128 bytes
triatlonn@terra.es (Stanley) writes:

> Hola Pascal,,    
>     
>   Me podrias explicar en 4 lineas que hacen estas 2 sentencias:
> 
>         1.-esac

man bash !!

    case - esac
    if   - fi
    do   - done
         
>         2.-printf "%03d-%03d  1c-%02d  2c-%02d  3c-%02d  
>                
>              Por mucho que lo miro, no consigo saber como asignas a
> 03d  el       n�mero de l�nea y despues el n de caracteres.

Pues mira otras l�neas.  Esta solamente imprime los resultados.

#!/bin/bash
fichero="$1"  # usa doble-quotes por si el nombre contiene espacios.
if [ -f "$fichero" -a -r "$fichero" ] ; then # man test 
    echo "fichero correcto"
    numlinea=0                           # initializaci�n del n�mero de l�nea
    while read linea ; do
        numlinea=$(( $numlinea + 1 ))    # incrementa el n�mero de l�nea
        uno=0
        dos=0
        tre=0
        res=0
        for word in $linea ; do # �no " aqu�!
            case ${#word} in    # aqu� se selecciona seg�n el n�mero de
                                # caracteres en la palabra : ${#word}
            1) uno=$(( $uno + 1 )) ;;
            2) dos=$(( $dos + 1 )) ;;
            3) tre=$(( $tre + 1 )) ;;
            *) res=$(( $res + 1 )) ;;
            esac
        done
        printf "%03d-%03d  1c-%02d  2c-%02d  3c-%02d  Resto-%02d\n" \
               $numlinea ${#linea} $uno $dos $tre $res
        # imprimir primero el n�mero de l�nea $numlinea
        # luego el n�mero de caracteres en la linea: ${#linea}
    done < "$fichero"
    echo "numero de lineas total: $i"
else
    echo "$fichero no es un fichero o no se puede leer."
fi


-- 
__Pascal_Bourguignon__                   http://www.informatimago.com/
----------------------------------------------------------------------
Do not adjust your mind, there is a fault in reality.
Technical Details
Message-ID: <87vfxcy643.fsf@thalassa.informatimago.com>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!newsmi-us.news.garr.it!newsmi-eu.news.garr.it!NewsITBone-GARR!fu-berlin.de!uni-berlin.de!thalassa.informatimago.COM!not-for-mail
References: <994c040b.0304111350.414087f7@posting.google.com> <slrnb9ej5k.114.ppujalARROBA@hola.fou.net> <8765pk9w43.fsf@thalassa.informatimago.com> <994c040b.0304121455.65edbb1b@posting.google.com> <87ptnrl143.fsf@thalassa.informatimago.com> <994c040b.0304130858.3fb47685@posting.google.com>

Show Full Headers
Complete Article Headers
X-Google-Language: SPANISH,ASCII
X-Google-Thread: f86c8,a25bc7d3540e92c3
X-Google-Attributes: gidf86c8,public
X-Google-ArrivalTime: 2003-04-17 17:57:50 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news1.google.com!newsfeed.stanford.edu!newsmi-us.news.garr.it!newsmi-eu.news.garr.it!NewsITBone-GARR!fu-berlin.de!uni-berlin.de!thalassa.informatimago.COM!not-for-mail
From: Pascal Bourguignon <spam@thalassa.informatimago.com>
Newsgroups: es.comp.os.linux.programacion
Subject: Re: Consulta Shell
Date: 18 Apr 2003 02:57:48 +0200
Organization: informatimago.com
Lines: 56
Message-ID: <87vfxcy643.fsf@thalassa.informatimago.com>
References: <994c040b.0304111350.414087f7@posting.google.com> <slrnb9ej5k.114.ppujalARROBA@hola.fou.net> <8765pk9w43.fsf@thalassa.informatimago.com> <994c040b.0304121455.65edbb1b@posting.google.com> <87ptnrl143.fsf@thalassa.informatimago.com> <994c040b.0304130858.3fb47685@posting.google.com>
NNTP-Posting-Host: thalassa.informatimago.com (195.114.85.194)
Mime-Version: 1.0
Content-Type: text/plain; charset=iso-8859-1
Content-Transfer-Encoding: 8bit
X-Trace: fu-berlin.de 1050627468 3026536 195.114.85.194 (16 [41911])
User-Agent: Gnus/5.09 (Gnus v5.9.0) Emacs/21.3.50