"BIG" (Umberto)
2007-02-21 15:51:56 UTC
Ho in un batch una riga simile:
sed -n -e "/^O[0-9]/p" m.txt | sed -n -e "$="
In pratica processo un file di testo [m.txt], filtro le linee che cominciano
per la lettera O maiuscola seguita da una cifra, poi conto le linee filtrate,
visualizzandone il totale.
In pratica ottengo in uscita il valore delle linee trovate in un singolo
numero.
Ora dovrei processare tale numero e procedere se corrisponde ad 1, oppure
intraprendere una serie di azioni se diverso da 1.
Il comando find, andrebbe bene, ma non restituisce un errorlevel.
I programmi "Turbo GREP Version 3.0 Copyright (c) 1991 Borland International"
e "SGREP 2.5 (c) Copyright 1991,92 - California Software Design" che ho
trovato, non agiscono su una pipe (anche se il secondo, ossia sgrep da un
errorlevel=1 se matcha il test).
Potrei arrangiarmi con un trucchetto ed usare un file bat di appoggio, a
trasferire il valore su una variabile, ma devo processare un centinaio di files
con la regola sopre descritta, ed il tempo di elaborazione diverrebbe troppo
lungo a causa della continua creazione del files batch di appoggio.
Mi servirebbe un programmino dos da riga di comando, che restituisca un
errorlevel, da fare un qualcosa tipo:
sed -n -e "/^O[0-9]/p" m.txt | sed -n -e "$=" | programma "1">nul
if errorlevel 1 goto ok
REM gestione errore
..
..
..
:ok
..
..
sed -n -e "/^O[0-9]/p" m.txt | sed -n -e "$="
In pratica processo un file di testo [m.txt], filtro le linee che cominciano
per la lettera O maiuscola seguita da una cifra, poi conto le linee filtrate,
visualizzandone il totale.
In pratica ottengo in uscita il valore delle linee trovate in un singolo
numero.
Ora dovrei processare tale numero e procedere se corrisponde ad 1, oppure
intraprendere una serie di azioni se diverso da 1.
Il comando find, andrebbe bene, ma non restituisce un errorlevel.
I programmi "Turbo GREP Version 3.0 Copyright (c) 1991 Borland International"
e "SGREP 2.5 (c) Copyright 1991,92 - California Software Design" che ho
trovato, non agiscono su una pipe (anche se il secondo, ossia sgrep da un
errorlevel=1 se matcha il test).
Potrei arrangiarmi con un trucchetto ed usare un file bat di appoggio, a
trasferire il valore su una variabile, ma devo processare un centinaio di files
con la regola sopre descritta, ed il tempo di elaborazione diverrebbe troppo
lungo a causa della continua creazione del files batch di appoggio.
Mi servirebbe un programmino dos da riga di comando, che restituisca un
errorlevel, da fare un qualcosa tipo:
sed -n -e "/^O[0-9]/p" m.txt | sed -n -e "$=" | programma "1">nul
if errorlevel 1 goto ok
REM gestione errore
..
..
..
:ok
..
..
--
,,, e dopo che ci avranno trasformato in vegetariani, a causa del vino al
metanolo, del pesce al mercurio, dei polli alla diossina, dei maiali agli
ormoni, delle mucche, pecore e capre pazze, ci daranno da mangiare la
frutta al benzene e la verdura radioattiva.
La nostra unica salvezza sara' nel Soylent Green!
,,, e dopo che ci avranno trasformato in vegetariani, a causa del vino al
metanolo, del pesce al mercurio, dei polli alla diossina, dei maiali agli
ormoni, delle mucche, pecore e capre pazze, ci daranno da mangiare la
frutta al benzene e la verdura radioattiva.
La nostra unica salvezza sara' nel Soylent Green!