|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Feb 2003
Città: Formia
Messaggi: 1545
|
programmazione sh
Se ho un file scritto in questo modo
ciao erasmo ciao 55 ciao mino .... ciao fine Posso fare un script mi legge riga per riga? E controllarle? Ovvero se c'è in una riga un determinato testo gli faccio fare qualcosa altrimenti no. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
Codice:
cat nomefile |while read line do if [[ `expr match $line regexp` > 0 ]] then #fai quel che vuoi fi done Ultima modifica di kingv : 03-04-2006 alle 15:14. |
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Feb 2003
Città: Formia
Messaggi: 1545
|
funziona ma ho un pb
se ho in una stringa gli spazi come li difende con la regexp la stringa da analizzare è output di who |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
Codice:
who | awk '/regex-qui/ {print;}'
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
Quote:
quoto, non ho capito bene qual è il problema. se devi verificare se un utente è loggato ti basta fare una grep sull'output di who, non occorre quel ciclo. lo spazio non è un problema, usa le virgolette per la regexp |
|
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Feb 2003
Città: Formia
Messaggi: 1545
|
Con il comando who ho un output del genere
root pts/40 Apr 3 17:47 (192.168.0.116) root pts/40 Apr 3 17:47 (192.168.0.106) root pts/40 Apr 3 17:47 (192.168.0.105) ho un script che mi scrive output di questo comando Quando vado ad analizzare il file vorrei scartare dal file tuttle le righe che segnano questo ip 192.168.0.116. Si potrei fare anche una cosa del genere who | awk '/regex-qui/ {print;}' ma non riesco a scrive una regex che faccia quello che dico io |
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
ti basta una grep:
grep -v 192.168.0.116 nomefile |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Feb 2003
Città: Formia
Messaggi: 1545
|
ok grazie sempre gentilissimo
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:38.