Newsgroup: it.comp.os.linux.iniziare
Titolo: Ricerche multiple con grep

Ciao a tutti,
volevo chiedervi qual'ï¿œ il comando grep per fare delle ricerche multiple.
Grazie
 

 volevo chiedervi qual'è il comando grep per fare delle ricerche multiple.
 
grep -ER nomechecerco directory1 directory2 eccetera
 
Se vuoi anche a colori:
grep --color-auto -ER nomechecerco directory1 directory2 eccetera
 
oppure:
grep --color-always -ER nomechecerco directory1 directory2 eccetera
 
-- 
Tanti saluti
 

 ... comando grep per fare delle ricerche multiple.
 
i dettagli dipendono da cosa intendi per ricerche multiple
ma in ogni caso il comando è: man grep
 
 
--- news://
freenews.netfront.net/
 - complaints: 
ne...@netfront.net
 ---

 grep -ER nomechecerco directory1 directory2 eccetera
 
Mi sono espresso male.
Volevo fare la ricerca di più parole all'interno di un comando tipo:
 
ps aux | grep parola1 parola2 parola3

 ma in ogni caso il comando è: man grep
 
 
Sono riuscito con il comando egrep:
 
(1)xa000001> listerm | egrep 
'4608|4340|4370|5959|4459|3251|4247|4321|3217|4365|3354|3229|2314'
  |  0  15   0  28 | 00029 | 4035(MR2_3 |  4340     |  . . . . . . . . .|
  |  1   9   0  14 | 01944 | 4035(MR2_3 |  2314     |  . . . . . . . . .|
  |  1   9   0  28 | 01958 | 4039(NOE_C |  4370     |  . . . . . . . . .|
  |  1  11   0  23 | 01265 | 4035(MR2_3 |  4365     |  . . . . . . . . .|
  |  1  14   0  10 | 01324 |     AUTPOS |  5959     |  . . . . . . . . .|
  |  1  15   0   9 | 00745 | 4035(MR2_3 |  4608     |  . . . . . . . . .|
  |  1  15   0  14 | 00750 | 4035(MR2_3 |  4247     |  . . . . . . . . .|
  |  1  18   0  12 | 01982 |     AUTPOS |  3217     |  . . . . . . . . .|
  |  1  25   0  29 | 01647 |     AUTPOS |  3354     |  . . . . . . . . .|
  |  2   2   0  55 | 02314 |      JONCT |           |  . . . . . . . . .|
  |  2   7   0   7 | 02572 | 4035(MR2_3 |  4321     |  . . . . . . . . .|
  |  2   9   0  20 | 00912 | 4035(MR2_3 |  4459     |  . . . . . . . . .|
  |  2  27   0  31 | 00735 |     AUTPOS |  3251     |  . . . . . . . . .|
  |  3   8   0  23 | 04365 |     T_RESU |           |  A . I . . . . . .|
  |  3   8   0  28 | 04370 |     T_RESU |           |  A . I . . . . . .|
  |  3  10   0  24 | 03907 |     AUTPOS |  3229     |  . . . . . . . . .|
  |  4   0   0  21 | 04247 |     T_RESU |           |  A . I . . . . . .|
  |  4  16   0  13 | 04459 |     AUTPOS |  3848     |  . . . . . . . . .|
  |  4  22   0   3 | 04321 |     AUTPOS |  4346     |  . . . . . . . . .|
  |  4  22   0  22 | 04340 |     AUTPOS |  3051     |  . . . . . . . . .|
  | 19   1   0  74 | 04608 |     T_RESU |           |  A . I . . . . . .|
 
 
Il problema è che la ricerca va effettuata sulla quarta colonna 
(4608,4340,4370,5959,4459,3251,4247,4321,ecc.)
 
Grazie

 Volevo fare la ricerca di più parole all'interno di un comando tipo:
 
In tal caso:
 
man grep /-F /\| /\\\| /paren


Addi' 12 mag 2014, Smith scrive:

Devi scrivere in un file i pattern, uno per ogni riga. Quindi dare il
comando:
 
ps aux | grep -E -f filechehaifatto
 
-- 
Tanti saluti
 

Addi' 12 mag 2014, Yoda scrive:

Ma sei sicuro che non lo faccia gia' ps? Io ps lo conosco pochissimo, ma
mi sa che facilmente non hai bisogno di greppare niente.
 
-- 
Tanti saluti
 

 Ma sei sicuro che non lo faccia gia' ps?
 
Effettivamente alcune versioni di ps (pgrep o psgrep mi pare
ma anche il ps della GNU standard su Linux) lo fanno già
con le opportune opzioni; ovviamente non sono molto flessibili.


 Grazie
 
Ormai hai risolto ma c'e' anche:
 
cat tuofile | grep 'primo\|secondo\|terzo'
-- 
Ciao
Andrea Malfatti

 cat tuofile | grep 'primo\|secondo\|terzo'
 
Grazie :-)

 cat tuofile | grep 'primo\|secondo\|terzo'
 
Si', ma ho evitato di dargli l'alternativa perche' da riga di comando ci
possono essere complicazioni per dei caratteri da proteggere (ad esempio
la barra non va protetta: "primo|secondo|terzo"), e poi e' quasi sempre
piu' comodo da file se sono piu' di due o tre (e ti resta pure per il
giorno dopo).
 
-- 
Tanti saluti
 


Sicuro?
Ho provato
 
$ cat test
prima
seconda
terza
quarta
quinta
$
 
$ cat test |grep 'prima\|seconda\|terza'
prima
seconda
terza
$
 
$
$ cat test |grep "prima|seconda|terza"
$
 
Sinceramente non ti so spiegare perche', non sono un grande esperto di
bash, pero' senza \ non mi funziona.
 
Comunque ricordavo il comando per via di un aiuto per samba che chiesi
in un forum, pubblicare un:
 
cat /etc/samba/smb.conf
 
con tutte la righe commentate o un:
 
cat /etc/samba/smb.conf | grep -v '#\|;\|^$'
 
con solo qualche riga vuota in mezzo da eliminare permette di leggere
piu' velocemente il file.
-- 
Ciao
Andrea Malfatti

 bash, pero' senza \ non mi funziona.
 
OK, scoperto tutto e buono a sapersi! Io uso grep -E, che e' equivalente
al veccchio egrep ora deprecato. Ebbene: col -E fa il contrario di
quando lo dai normale (che allora fa come dici tu). Prova!
 
-- 
Tanti saluti
 


Ok, provato con -E e funziona, poi leggero' il man cosi' capisco
meglio.
-- 
Ciao
Andrea Malfatti

 
 
Prova "egrep", che dovrebbe essere come "grep -E".
 
A me, "egrep", con "\|", *non* funziona.
 
Forse "grep" da solo ha bisogno dell'escape...
 
bye,
 
-- 
 
piergiorgio