Discussione:
Find - grep ot similia
(troppo vecchio per rispondere)
"BIG" (Umberto)
2007-02-21 15:51:56 UTC
Permalink
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
..
..
--
,,, 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!
mmm
2007-02-23 10:39:01 UTC
Permalink
Post by "BIG" (Umberto)
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
sed -n -e "/^O[0-9]/p" m.txt | sed -n -e "$=" | programma "1">nul
if errorlevel 1 goto ok
REM gestione errore
..
..
..
:ok
..
..
provato con l'awk ?

probabilmente puoi fare tutto con un suo script
"BIG" (Umberto)
2007-02-24 14:49:34 UTC
Permalink
Il giorno Fri, 23 Feb 2007 11:39:01 +0100, mmm,
Post by mmm
provato con l'awk ?
probabilmente puoi fare tutto con un suo script
Non ho provato, anche se non l'ho mai capito bene come funziona, nemmeno sotto
linux!
Awk l'ho sempre usato solo per ricomporre una riga spostando e selezionando i
vari campi.
In compenso, ho provato a cercare delle varianti di grep (quello che avevo, non
risolveva bene), e sul sito http://garbo.uwasa.fi/pc/unix.html(veramente ben
fornito) ho trovato un grep1.5.zip che ha risolto pienamente il problema.
--
,,, 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!
Loading...