PDA

View Full Version : programmazione sh


texerasmo
03-04-2006, 14:42
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.

kingv
03-04-2006, 15:10
cat nomefile |while read line
do
if [[ `expr match $line regexp` > 0 ]]
then #fai quel che vuoi
fi

done

texerasmo
03-04-2006, 16:11
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

shinya
03-04-2006, 16:32
who | awk '/regex-qui/ {print;}'


Uno spazio è identificato da \s. Spero di aver capito il tuo problema; magari fai un esempio di ciò che ti serve realmente.

kingv
03-04-2006, 16:49
magari fai un esempio di ciò che ti serve realmente.


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

texerasmo
03-04-2006, 17:09
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

kingv
03-04-2006, 17:19
ti basta una grep:


grep -v 192.168.0.116 nomefile

texerasmo
04-04-2006, 14:09
ok grazie sempre gentilissimo