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ò