Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Grep: messaggio di errore se non trova

3 views
Skip to first unread message

Lorents

unread,
Nov 23, 2009, 12:04:19 PM11/23/09
to
Spero di non essere OT chiedendo qua.
Vorrei che se eseguo una cosa tipo
grep '1234567' myfile.txt

e '1234567' non e' stato trovato, mi appaia un messaggio di errore (di
una linea) tipo
"Error: non found".
Ho letto man grep ma non ho trovato questa opzione. In uno script per
ora ho scritto
grep '1234567' myfile.txt
if test $? -ne 0; then
echo "Not found"
fi

ma e' un po' lungo e a volte scomodo.
Suggerimenti?

Grazie,

Lorenzo

Enrico Bassetti

unread,
Nov 23, 2009, 12:06:15 PM11/23/09
to
Lorents ha scritto:

> ma e' un po' lungo e a volte scomodo.
> Suggerimenti?

grep ago /pagliaio || echo "not found"

La prima cosa che mi � venuta in mente ;-)

Enrico

Skull

unread,
Nov 23, 2009, 12:09:26 PM11/23/09
to
On 11/23/09 6:04 PM, Lorents wrote:

> Vorrei che se eseguo una cosa tipo
> grep '1234567' myfile.txt
>
> e '1234567' non e' stato trovato, mi appaia un messaggio di errore (di
> una linea) tipo
> "Error: non found".

grep -q '1234567' myfile.txt || echo "Error: non found"


--
Professional System & Network Sarcazzer
http://bofhskull.wordpress.com/

Crononauta

unread,
Nov 24, 2009, 4:11:32 AM11/24/09
to
Enrico Bassetti wrote:
> grep ago /pagliaio || echo "not found"
^^^^^^^^^^^^^

ROTFLONE :-D

--
Massimo Bacilieri AKA Crononauta

Lorents

unread,
Nov 27, 2009, 1:37:12 PM11/27/09
to Enrico Bassetti


Grazie mille, e' esattamente quello che cercavo!

Lorents

unread,
Nov 27, 2009, 1:37:23 PM11/27/09
to

Crononauta

unread,
Nov 27, 2009, 2:26:03 PM11/27/09
to
On Fri, 27 Nov 2009 18:37:12 +0000, Lorents <lor...@amp.te> wrote:
> Enrico Bassetti wrote:
>> Lorents ha scritto:
>>> ma e' un po' lungo e a volte scomodo.
>>> Suggerimenti?
>>
>> grep ago /pagliaio || echo "not found"
>>
>> La prima cosa che mi ᅵ venuta in mente ;-)

>
> Grazie mille, e' esattamente quello che cercavo!

Puoi anche testare il return code. Grep ritorna 0 se matcha il pattern
cercato, e 1 se non lo matcha. Esempio pratico:

$ echo ago > pagliaio
$ grep -l ago pagliaio
pagliaio
$ echo $?
0
$ grep -l pippo pagliaio
$ echo $?
1

--
Massimo Bacilieri AKA Crononauta

Skype: crononauta <massimo....@gmail.com>
Facebook: Massimo Bacilieri

twistedbrain

unread,
Nov 27, 2009, 5:14:28 PM11/27/09
to
On 27 Nov, 20:26, Crononauta <massimo.bacili...@gmail.com> wrote:

> On Fri, 27 Nov 2009 18:37:12 +0000, Lorents <lore...@amp.te> wrote:
> > Enrico Bassetti wrote:
> >> Lorents ha scritto:
> >>> ma e' un po' lungo e a volte scomodo.
> >>> Suggerimenti?
>
> >> grep ago /pagliaio || echo "not found"
>
> >> La prima cosa che mi è venuta in mente ;-)

>
> > Grazie mille, e' esattamente quello che cercavo!
>
> Puoi anche testare il return code. Grep ritorna 0 se matcha il pattern
> cercato, e 1 se non lo matcha. Esempio pratico:
>
> $ echo ago > pagliaio
> $ grep -l ago pagliaio
> pagliaio
> $ echo $?
> 0
> $ grep -l pippo pagliaio
> $ echo $?
> 1

E cosi` si chiude il cerchio perche' era quello che faceva nella sua
soluzione (1o msg di questo thread).

Andrea

Crononauta

unread,
Nov 27, 2009, 5:27:20 PM11/27/09
to
On Fri, 27 Nov 2009 14:14:28 -0800 (PST), twistedbrain <andrea....@gmail.com> wrote:
>> >> grep ago /pagliaio || echo "not found"
>>
>> Puoi anche testare il return code. Grep ritorna 0 se matcha il pattern
>> cercato, e 1 se non lo matcha. Esempio pratico:
>
> E cosi` si chiude il cerchio perche' era quello che faceva nella sua
> soluzione (1o msg di questo thread).

Vacca boia, quel sangiovese "Selex" da 90 centesimi era piᅵ tossico di
quello che pensavo :-O
Fare la congiunzione logica in OR in effetti equivale nᅵ piᅵ nᅵ meno a
testare il return code, sotto i fumi di quel veleno non me n'ero neanche
accorto... :-O

twistedbrain

unread,
Nov 27, 2009, 6:41:27 PM11/27/09
to
Crononauta ha scritto:

> On Fri, 27 Nov 2009 14:14:28 -0800 (PST), twistedbrain <andrea....@gmail.com> wrote:
>>>>> grep ago /pagliaio || echo "not found"
>>> Puoi anche testare il return code. Grep ritorna 0 se matcha il pattern
>>> cercato, e 1 se non lo matcha. Esempio pratico:
>> E cosi` si chiude il cerchio perche' era quello che faceva nella sua
>> soluzione (1o msg di questo thread).
>
> Vacca boia, quel sangiovese "Selex" da 90 centesimi era piᅵ tossico di
> quello che pensavo :-O

Ma 90 cent 750 cc?!?!??? Se e` cosi` con cosa lo fanno? Costa quasi di
piu` l'acqua.

> Fare la congiunzione logica in OR in effetti equivale nᅵ piᅵ nᅵ meno a
> testare il return code, sotto i fumi di quel veleno non me n'ero neanche
> accorto... :-O

Non era tanto una questione di equivalenza, quanto che l'OP (che non so
che sia o voglia dire, ma ho visto che qui acronimizzano cosi` chi fa
una domanda - luogo che vai acronomizzazione che trovi) era partito
proprio esponendo quella soluzione basata sul return code, che trovava
macchinosa, ed effettivamente quella basata sull'OR e` molto piu`
elegante, anche se formalmente pelosa, nel senso che funziona e ha una
logica, ma e` uno sporco trucco sul quale per altro si basa parecchia
programmazione shell (anche con l'AND, oltre che con l'OR).

Andrea

P.S.: consiglio invece i vini Lidl ed ESSELUNGA in offerta (si trovano
cose decenti a prezzi ragionevoli, anche se non certamente dei 90 cent x
750 cc).

Crononauta

unread,
Nov 28, 2009, 4:32:41 AM11/28/09
to
On Sat, 28 Nov 2009 00:41:27 +0100, twistedbrain <andrea....@gmail.com> wrote:
> Ma 90 cent 750 cc?!?!??? Se e` cosi` con cosa lo fanno? Costa quasi di
> piu` l'acqua.

Non so con cosa lo facciano... l'ho trovato al "Famila" e mi sono detto:
mi lamento sempre delle cose che aumentano di prezzo... per coerenza
devo provare questo. Peccato che fosse alla stregua del piscio di gnu.
:-O
E dire che ero giᅵ rimasto scottato con il caffᅵ "mezza moneta", roba
che era piᅵ buono un infuso di segatura usata per pulire per terra :-/

> Non era tanto una questione di equivalenza, quanto che l'OP (che non so
> che sia o voglia dire, ma ho visto che qui acronimizzano cosi` chi fa
> una domanda - luogo che vai acronomizzazione che trovi)

Per ritornare a informazioni utili, OP dovrebbe voler dire "original
poster", ovvero colui che ha inviato il messaggio che ha dato inizio al
thread.

> P.S.: consiglio invece i vini Lidl ed ESSELUNGA in offerta (si trovano
> cose decenti a prezzi ragionevoli, anche se non certamente dei 90 cent x
> 750 cc).

Grazie ma a Ravenna Esselunga non c'ᅵ :-/
Qui ci sono Coop, Famila e Conad. Poi ci sono i discount tipo Lidl,
Sigma, Penny. Vabbᅵ amen, basta evitare il Sangiovese Selex (anche la
marca sembra piᅵ da preservativi che da vini... :-O ).

twistedbrain

unread,
Nov 28, 2009, 6:42:26 AM11/28/09
to
Crononauta ha scritto:

> Grazie ma a Ravenna Esselunga non c'ᅵ :-/
> Qui ci sono Coop, Famila e Conad. Poi ci sono i discount tipo Lidl,
> Sigma, Penny. Vabbᅵ amen, basta evitare il Sangiovese Selex (anche la
> marca sembra piᅵ da preservativi che da vini... :-O ).

La Coop c'e` anche qui, ma per i vini e` decisamente cara e non e` che
sia molto meglio anche per il resto, a meno di sconti episodici e
particolari o di cappellate degli addetti alle vendite e restituzioni.
Avevo comperato del materiale informatico, uno schermo, a prezzo
stracciato, che pero` aveva molti pixel bruciati e valeva tutto quello
che costava, anche in sconto, cioe` molto poco.
L'ho riportato, ho chiesto indietro i soldi e mi hanno ridato il prezzo
intero, non quello scontato che avevo pagato, nonostante glielo facessi
presente ribattevano con decisione e sicurezzza con un'argomentazione
insensata (tipo che lo sconto era su tutta la spesa, cosa vera, ma
irrilevante ai fini del rimborso dato che era una percentuale fissa
sulla spesa che quindi era stata applicata anche al prezzo del monitor)
al che non mi sono messo a litigare e li ho lasciati fare. Fosse stato
un amico o un parente, l'avrei fatto (di litigare nel loro interesse),
ma la coop sei tu fino ad un certo punto
(ho la coscienza linda: in fondo sarei potuto anche star zitto
dall'inizio senza fargli notare la ca....ta che stavano facendo).

0 new messages