Tanto per cominciare voglio dire che io sono un bilingue dei sistemi operativi. Mi piacciono molti sistemi e uso volentieri le più disparate versioni di OS (non solo *NIX!) in base all'obiettivo che cerco di raggiungere.
Le mie competenze che voglio qui condividere mi hanno valso il soprannome di scriptomane, tra i miei colleghi, ed alcuni sistemisti linux con cui ho collaborato hanno osservato: ma tu usi windows come linux!
Oggi voglio parlare delle alternative windows batch al potentissimo comando unix GREP. Lo sapevate che anche in windows é possibile analizzare l'output di un comando, ad esempio, con le regular expressions? I comandi batch FIND e FINDSTR permettono l'uno uno startup semplice per chi non ha bisogno di regular expressions o ricerche multiple, l'altro lo stadio più avanzato della ricerca nei files, nelle directory e nell'output dalla pipe.
Per chi non lo sapesse, la pipe é un modo di redirezione dell'output che proviene dai sistemi *nix e che era già implementato in DOS da una certa versione.
Un semplice modo per passare l'output di un comando ad un secondo comando é
Comando1 | Comando2, ad esempio:
Netstat -n | FIND ":25 "
Mostrerà tutte le connessioni di rete attive sulla porta 25, sia che esse siano in ingresso, sia che siano in uscita.
Dir /A-D /B | Findstr /I /R "[sa].*[bg]\..* [a-fzx]*\..*"
Cerca tutti i files nella directory corrente che non sono directory (/A-D), con qualsiasi estensione e il cui nome
- cominci per s oppure per a e finisca per b oppure per g, con qualsiasi estensione.
- oppure contenga solo a, b, c, d, e, f, z oppure x, con qualsiasi estensione.
Ed ecco che abbiamo descritto una funzione evolutissima della shell command-line di Windows.
A mio avviso è il metodo perfetto per ottenere output filtrati ulteriormente analizzabili/utilizzabili da altri script.
Si può anche iserire i risultati in un ciclo for per operare azioni sulla base di ogni riga outputtata... ma questo ve lo dico in un altro post....
Ciao!
Nessun commento:
Posta un commento
I commenti sono soggetti a moderazione, prima di essere pubblicati.
Qualsiasi contenuto illecito, immorale o che io ritenga (arbitrariamente) offensivo od inappropriato, verrà cancellato.