Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Script in bash

  1. #1

    Script in bash

    Ho scritto uno script per bash per modificare un imput del genere:

    commento:1.2.3.4-1.2.3.5

    in

    1.2.3.4 - 1.2.3.5 , 000 , commento

    ovvero per trasformare gli ipfilter per peerguardian nel formato di MLDonkey/eMule

    codice:
    #!/bin/bash
    cat - | while  read -d ":" COMMENT IPRANGE ; do
    echo $IPRANGE | read -d "-" STARTIP ENDIP ;
    echo "$STARTIP - $ENDIP , 000 , $COMMENT" ;
    done
    Il problema è che non funziona... e non capisco il perchè...

    mi sapreste aiutare?
    Ubuntu è un'antica parola africana che significa: "Non so' installare Debian!"

  2. #2
    dopo un po' di esperienza con bash e con gli script, e dopo aver riesumato l'account di html.it mi do una risposta da solo:

    codice:
    #!/bin/bash
    cat - | while IFS=":" read  COMMENT IPRANGE ; do
        echo $IPRANGE | while IFS="-" read STARTIP ENDIP ; do
            echo "$STARTIP - $ENDIP , 000 , $COMMENT" ;
        done;
    done
    La variabile d'ambiente IFS mi permette di specificare il carattere di divisione tra campi, specificandolo davanti al comando mi assicuro che solo in quell'istanza di shell quella variabile sia modificata, il comando read non funziona se non in presenza di un ciclo while o until.

    Buona sorte.
    Ubuntu è un'antica parola africana che significa: "Non so' installare Debian!"

  3. #3
    Originariamente inviato da poe84it
    dopo un po' di esperienza con bash e con gli script, e dopo aver riesumato l'account di html.it mi do una risposta da solo:

    codice:
    #!/bin/bash
    cat - | while IFS=":" read  COMMENT IPRANGE ; do
        echo $IPRANGE | while IFS="-" read STARTIP ENDIP ; do
            echo "$STARTIP - $ENDIP , 000 , $COMMENT" ;
        done;
    done
    La variabile d'ambiente IFS mi permette di specificare il carattere di divisione tra campi, specificandolo davanti al comando mi assicuro che solo in quell'istanza di shell quella variabile sia modificata, il comando read non funziona se non in presenza di un ciclo while o until.

    Buona sorte.
    cavolo, ti ci è voluto un pò
    "L'utopia è come l'orizzonte: cammino due passi, e si allontana di due passi. Cammino di dieci passi, e si allontana di dieci passi. E allora, a cosa serve l'utopia? A questo: serve per continuare a camminare."
    Eduardo Galeano
    Il mio sito
    "if you want people to RTFM, make a better FM!"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.