Strona 1 z 1

Pobranie danych z pliku do iptables

: 26 stycznia 2009, 08:11
autor: cr3pt
Witam serdecznie.
Mam maluśki problemik związany z wyciągnięciem danych z pliku tekstowego w dość charakterystyczny sposób.
Oto plik:
zasada:

Kod: Zaznacz cały

NAZWA MAC IP PORTY
Przykład:

Kod: Zaznacz cały

serwer 00:01:02:03:04:05 192.168.0.1 21,25,53,80,110
Jeśli chodzi o pobranie danych z w/w tablicy to nie problem, chodzi mi o to jak zamienić dane po przecinku w poszczególne porty? Przy czym dla każdej linijki ilość portów jest różna.
Ogólnie zmienne wyciągam w ten sposób:

Kod: Zaznacz cały

cat PLIK | while read linia
DANE="`echo $linia | grep -vE '^[[:space:]]*(#|$)'`"
if [ "$DANE" !="" ]
then
NAZWA="`echo $DANE | cut -d ' ' -f1'"
MAC="`echo $DANE | cut -d ' ' -f2'"
IP="`echo $DANE | cut -d ' ' -f3'"
i teraz jak zrobić pętlę która by pobierała nieznaną ilość (dla każdego kompa inną) portów z 4 kolumny i następnie te porty traktowała jako oddzielne zmienne?
Chodzi mi o to że uzyskane dane były by następujące:

Kod: Zaznacz cały

echo "komp $NAZWA mac: $MAC ip: $IP dostęp do $PORTY"
Bardzo proszę o pomoc.
Pozdrawiam
cr3pt

: 26 stycznia 2009, 13:58
autor: mesiu84

Kod: Zaznacz cały

sed -e 's/ /  /g' $PLIK | awk -F "  " '{gsub (","," ") ;print "Komp " $1 "\tMAC: " $2 "\tIP: " $3 "\tPORTY: " $4}'
Spróbuj tego, u mnie działa, tam miejscami są 2 spacje a nie jedna. Oczywiście zamiast $PLIK wstaw swoją ścieżkę do pliku.