[+] Skrypt wyprowadzający dane z pliku czytanego linia po linii
: 28 lutego 2011, 11:40
Witam.
Kto będzie tak miły i wyjaśni mi dlaczego taki skrypt:
wykonywany z przykładowym plikiem dane.csv następującej treści:
zwraca:
zamiast oczekiwanego:
Ten ostatni wynik uzyskałem wpisując bezpośrednio w konsoli:
Rzecz w tym, że jak wspomniałem, plik musi być czytany linia po linii, a po odczytaniu połowy, 4 i 7 z każdego rekordu, ich wartość, ma być wprowadzona do zmiennych, które będą dalej przetworzone i dopiero po ich przetworzeniu ma być odczytywana kolejna linia z pliku wejściowego.
Próbowałem jeszcze czegoś takiego:
według wzorca podanego na tej stronie: http://debian.linux.pl/threads/1603-Waż ... cenia-bash ale konsola zwraca:
Przetestowałem zresztą niezliczoną ilość wariantów kodu, ale bez oczekiwanego rezultatu, dlatego proszę o pomoc tutaj.
Kto będzie tak miły i wyjaśni mi dlaczego taki skrypt:
Kod: Zaznacz cały
#!/bin/sh
while read line
do
cut -d, -f4,7 $line
done < 'dane.csv'
Kod: Zaznacz cały
52.2075107,21.0087432,bank,Rakowiecka,39,PKO BP,Warszawa,,,, ,
52.2078542,21.0080328,atm,Aleja Niepodległości,162,Pekao SA,Warszawa,,,, ,
52.1951224,21.0023083,bank,Wołoska,58/62,PKO BP,Warszawa,,,, ,
53.4451311,14.5309325,theatre,Juliana Fałata,2,Teatr Letni im. Heleny Majdaniec,Szczecin,,,, ,
52.20609,21.0281789,restaurant,Zajączkowska,11,Blue Cactus,Warszawa,,,, ,
52.2061913,21.0284854,nightclub,Zajączkowska,11,Iguana Lounge,Warszawa,,,, ,
52.2164819,20.9985705,fuel,Wawelska,3B,PKN Orlen,Warszawa,,,, ,
52.1576389,21.0302965,place_of_worship,Aleja Komisji Edukacji Narodowej,101,Kościół Wniebowstąpienia Pańskiego,Warszawa,,,, ,
52.1755268,21.0362776,place_of_worship,Dominikańska,2,Kościół św. Dominika,Warszawa,,,, ,
51.0158027,15.6717432,place_of_worship,Dworcowa,,Kościół św. Mikołaja,Wleń,,,, ,
51.016048,15.6711645,school,Dworcowa,10,ZS im. św. Jadwigi Śląskiej - SP,Wleń,,,, ,
51.0159785,15.6712755,college,Dworcowa,10,ZS im. św. Jadwigi Śląskiej - Gimnazjum,Wleń,,,, ,
51.0171141,15.6748295,police,pl. Bohaterów Nysy,,Policja,Wleń,,,, ,
52.2771332,20.9942652,fuel,Wybrzeże Gdyńskie,,Stacja Paliw,Warszawa,,,, ,
52.2846286,20.9871069,fuel,Wybrzeże Gdyńskie,,Neste,Warszawa,,,, ,
52.2273614,21.0031544,restaurant,Aleje Jerozolimskie,65/79,Wook,Warszawa,,,, ,
52.2769151,21.0429172,place_of_worship,Św. Wincentego,81,Kościół św. Wincentego à Paulo,Warszawa,,,, ,
52.2749847,21.0677255,supermarket,Radzymińska,166,Obi,Warszawa,,,, ,
53.4120369,14.5224112,fuel,Mieszka I,79,BP,Szczecin,,,, ,
52.2409746,21.1339093,fuel,Marsa,53,Shell,Warszawa,,,, ,
Kod: Zaznacz cały
cut: 52.2075107,21.0087432,bank,Rakowiecka,39,PKO: Nie ma takiego pliku ani katalogu
cut: BP,Warszawa,,,,: Nie ma takiego pliku ani katalogu
cut: ,: Nie ma takiego pliku ani katalogu
cut: 52.2078542,21.0080328,atm,Aleja: Nie ma takiego pliku ani katalogu
cut: Niepodległości,162,Pekao: Nie ma takiego pliku ani katalogu
cut: SA,Warszawa,,,,: Nie ma takiego pliku ani katalogu
cut: ,: Nie ma takiego pliku ani katalogu
cut: 52.1951224,21.0023083,bank,Wołoska,58/62,PKO: Nie ma takiego pliku ani katalogu
cut: BP,Warszawa,,,,: Nie ma takiego pliku ani katalogu
cut: ,: Nie ma takiego pliku ani katalogu
cut: 53.4451311,14.5309325,theatre,Juliana: Nie ma takiego pliku ani katalogu
cut: Fałata,2,Teatr: Nie ma takiego pliku ani katalogu
cut: Letni: Nie ma takiego pliku ani katalogu
cut: im.: Nie ma takiego pliku ani katalogu
cut: Heleny: Nie ma takiego pliku ani katalogu
cut: Majdaniec,Szczecin,,,,: Nie ma takiego pliku ani katalogu
cut: ,: Nie ma takiego pliku ani katalogu
cut: 52.20609,21.0281789,restaurant,Zajączkowska,11,Blue: Nie ma takiego pliku ani katalogu
cut: Cactus,Warszawa,,,,: Nie ma takiego pliku ani katalogu
cut: ,: Nie ma takiego pliku ani katalogu
cut: 52.2061913,21.0284854,nightclub,Zajączkowska,11,Iguana: Nie ma takiego pliku ani katalogu
cut: Lounge,Warszawa,,,,: Nie ma takiego pliku ani katalogu
cut: ,: Nie ma takiego pliku ani katalogu
cut: 52.2164819,20.9985705,fuel,Wawelska,3B,PKN: Nie ma takiego pliku ani katalogu
cut: Orlen,Warszawa,,,,: Nie ma takiego pliku ani katalogu
cut: ,: Nie ma takiego pliku ani katalogu
cut: 52.1576389,21.0302965,place_of_worship,Aleja: Nie ma takiego pliku ani katalogu
cut: Komisji: Nie ma takiego pliku ani katalogu
cut: Edukacji: Nie ma takiego pliku ani katalogu
cut: Narodowej,101,Kościół: Nie ma takiego pliku ani katalogu
cut: Wniebowstąpienia: Nie ma takiego pliku ani katalogu
cut: Pańskiego,Warszawa,,,,: Nie ma takiego pliku ani katalogu
cut: ,: Nie ma takiego pliku ani katalogu
cut: 52.1755268,21.0362776,place_of_worship,Dominikańska,2,Kościół: Nie ma takiego pliku ani katalogu
cut: św.: Nie ma takiego pliku ani katalogu
cut: Dominika,Warszawa,,,,: Nie ma takiego pliku ani katalogu
cut: ,: Nie ma takiego pliku ani katalogu
cut: 51.0158027,15.6717432,place_of_worship,Dworcowa,,Kościół: Nie ma takiego pliku ani katalogu
cut: św.: Nie ma takiego pliku ani katalogu
cut: Mikołaja,Wleń,,,,: Nie ma takiego pliku ani katalogu
cut: ,: Nie ma takiego pliku ani katalogu
cut: 51.016048,15.6711645,school,Dworcowa,10,ZS: Nie ma takiego pliku ani katalogu
cut: im.: Nie ma takiego pliku ani katalogu
cut: św.: Nie ma takiego pliku ani katalogu
cut: Jadwigi: Nie ma takiego pliku ani katalogu
cut: Śląskiej: Nie ma takiego pliku ani katalogu
Dworcowa,Wleń
pl. Bohaterów Nysy,Wleń
Wybrzeże Gdyńskie,Warszawa
Wybrzeże Gdyńskie,Warszawa
Aleje Jerozolimskie,Warszawa
Św. Wincentego,Warszawa
Radzymińska,Warszawa
Mieszka I,Szczecin
Marsa,Warszawa
cut: SP,Wleń,,,,: Nie ma takiego pliku ani katalogu
cut: ,: Nie ma takiego pliku ani katalogu
Kod: Zaznacz cały
Rakowiecka,Warszawa
Aleja Niepodległości,Warszawa
Wołoska,Warszawa
Juliana Fałata,Szczecin
Zajączkowska,Warszawa
Zajączkowska,Warszawa
Wawelska,Warszawa
Aleja Komisji Edukacji Narodowej,Warszawa
Dominikańska,Warszawa
Dworcowa,Wleń
Dworcowa,Wleń
Dworcowa,Wleń
pl. Bohaterów Nysy,Wleń
Wybrzeże Gdyńskie,Warszawa
Wybrzeże Gdyńskie,Warszawa
Aleje Jerozolimskie,Warszawa
Św. Wincentego,Warszawa
Radzymińska,Warszawa
Mieszka I,Szczecin
Marsa,Warszawa
Kod: Zaznacz cały
cut -d, -f4,7 'dane.csv'
Próbowałem jeszcze czegoś takiego:
Kod: Zaznacz cały
#!/bin/sh
exec 6< 'dane.csv'
while read -u 6 deb
do
cut -d, -f4,7
echo $deb
done
exec 6<&-
Kod: Zaznacz cały
read: 7: Illegal option -u