Nowe posty

Autor Wątek: funkcje w awk  (Przeczytany 10228 razy)

kamjutka

  • Gość
funkcje w awk
« dnia: 2005-10-12, 15:51:00 »
witajcie  :)

przychodzę z problemem, które już nijak nie potrafię rozwiązać, a jest dość wielokanałowy, hm

ipod 60 gb + gentoo + jądro 2.6.10-gentoo-r6
wkompilowane obydwie wymagane obsługi - partycji makowych i systemu plików makowego

dość dziwna sytuacja, często zdarza się, gdy urządzenia elektroniczne trafiają w moje ręce - pt. działa, ale nie działa, tudzież najpierw działa, później nie działa ;)
mianowicie, najpierw przez dwa kopiowania plików ipod ładnie sobie działał. potem zaczął mieć problemy z systemem plików - chciał je li i jedynie odczytywać, a zapisywać mu się nie chciało, a gdy odkryłam rzecz, jaką jest hpmount (montowanie systemu hfsplus), mount nagle zaczął działać. hmm.
Yamipod nie działa, bo nie ma żadnej piosenki na ipodzie - więc nie umie przeczytać iTunesDB.
GTKpod podczas czytania iTunesDB mówi:

Could not open \\"iTunesDB.ext\\" for reading extended info.
Extended info will not be used.
iPod Database Import Failed: \\'Illegal seek to offset 0 (length 4) in file \\'/mnt/ipod/iPod_Control/iTunes/iTunesDB\\'.\\'

mniemam, że to ten sam powód, lecz pojawiają się inne ciekawostki, które zaprzepaszczają moją drogę do sukcesu:

primo:
localhost kamjutka # ls /mnt/ipod/iPod_Control/Music
ls: czytanie katalogu /mnt/ipod/iPod_Control/Music: Błąd wejścia/wyjścia

(podczas gdy nie ma problemu z czytaniem jakiegokolwiek innego katalogu)

secundo:

localhost kamjutka # df /dev/sdb3
System plików      bl.  1K B        użyte dostępne %uż. zamont. na
/dev/sdb3             58567040 -73786976294836751864  60021640 101% /mnt/ipod

(queee? jakie 101%? jakie -...? to w koncu jest użyte minus (co to do cholery znaczy?) czy 101%?)

tertio:

gtkpod przy próbie kopiowania mówi:

Error while writing to \\'/mnt/ipod/iPod_Control/Music/F09/gtkpod687395.mp3\\' (Brak miejsca na urządzeniu). -> i tak z pozostałymi dziesięcioma tysiącami plików, podczas gdy ipod jest pusty..

..no właśnie, pusty? skoro ma wolne w przybliżeniu 57/55GB?
skąd ten minus, to zajęte -2?

quatro:

dmesg mówi:

usb 1-8: new high speed USB device using ehci_hcd and address 8
scsi8 : SCSI emulation for USB Mass Storage devices
usb-storage: device found at 8
usb-storage: waiting for device to settle before scanning
  Vendor: Apple     Model: iPod              Rev: 1.62
  Type:   Direct-Access                      ANSI SCSI revision: 00
SCSI device sdb: 117210240 512-byte hdwr sectors (60012 MB)
sdb: assuming Write Enabled
sdb: assuming drive cache: write through
SCSI device sdb: 117210240 512-byte hdwr sectors (60012 MB)
sdb: assuming Write Enabled
sdb: assuming drive cache: write through
 /dev/scsi/host8/bus0/target0/lun0: [mac] p1 p2 p3
Attached scsi removable disk sdb at scsi8, channel 0, id 0, lun 0
Attached scsi generic sg1 at scsi8, channel 0, id 0, lun 0,  type 0
usb-storage: device scan complete

a po próbie kopiowania plików malkontentuje z lekka:

HFS+-fs: walked past end of dir
extend alloc file! (14680064,14641760,15005410)

i czy input/output wynika z błędu w obliczeniu rozmiaru partycji czy na odwrót?
i dlaczego do cholery - działało, a nie działa? ;)
firmware został przeinstalowany. testowany na ajmaku.
bardzo prosiłabym o odpowiedź na ww. pytania i jakąkolwiek wskazówkę, odniesienie, cokolwiek.

i dodatkowo, o ile to ma jakiekolwiek znaczenie w tym przypadku:
dmesg marudzi przy ejectowaniu:
program eject is using a deprecated SCSI ioctl, please convert it to SG_IO

a sam eject marudzi:
localhost / # eject /mnt/ipod
eject: unable to eject, last error: Zły argument

co jest bzdurą, bo ipod sie ejectuje (to jest, nie krzyczy już, co by do not disconnect)

jeszcze raz dziękuję z góry za jakiekolwiek naprowadzenie

  • Gość
funkcje w awk
« Odpowiedź #1 dnia: 2005-10-12, 17:15:28 »
2005-10-12 15:51:00 kamjutka napisał:

> witajcie  :)
 >
 > przychodzę z problemem, które już nijak nie potrafię rozwiązać, a jest dość wielokanałowy, hm
 >
 > ipod 60 gb + gentoo + jądro 2.6.10-gentoo-r6
 > wkompilowane obydwie wymagane obsługi - partycji makowych i systemu plików makowego
 >
 > dość dziwna sytuacja, często zdarza się, gdy urządzenia elektroniczne trafiają w moje ręce -
 > pt. działa, ale nie działa, tudzież najpierw działa, później nie działa ;)
 > mianowicie, najpierw przez dwa kopiowania plików ipod ładnie sobie działał. potem zaczął mieć
 > problemy z systemem plików - chciał je li i jedynie odczytywać, a zapisywać mu się nie chciało,
 > a gdy odkryłam rzecz, jaką jest hpmount (montowanie systemu hfsplus), mount nagle zaczął
 > działać. hmm.
 > Yamipod nie działa, bo nie ma żadnej piosenki na ipodzie - więc nie umie przeczytać iTunesDB.
 > GTKpod podczas czytania iTunesDB mówi:
 >
 > Could not open \\"iTunesDB.ext\\" for reading extended info.
 > Extended info will not be used.
 > iPod Database Import Failed: \\'Illegal seek to offset 0 (length 4) in file
 > \\'/mnt/ipod/iPod_Control/iTunes/iTunesDB\\'.\\'
 >
 > mniemam, że to ten sam powód, lecz pojawiają się inne ciekawostki, które zaprzepaszczają moją
 > drogę do sukcesu:
 >
 > primo:
 > localhost kamjutka # ls /mnt/ipod/iPod_Control/Music
 > ls: czytanie katalogu /mnt/ipod/iPod_Control/Music: Błąd wejścia/wyjścia
 >
 > (podczas gdy nie ma problemu z czytaniem jakiegokolwiek innego katalogu)
 >
 > secundo:
 >
 > localhost kamjutka # df /dev/sdb3
 > System plików      bl.  1K B        użyte dostępne %uż. zamont. na
 > /dev/sdb3             58567040 -73786976294836751864  60021640 101% /mnt/ipod
 >
 > (queee? jakie 101%? jakie -...? to w koncu jest użyte minus (co to do cholery znaczy?) czy
 > 101%?)
 >
 > tertio:
 >
 > gtkpod przy próbie kopiowania mówi:
 >
 > Error while writing to \\'/mnt/ipod/iPod_Control/Music/F09/gtkpod687395.mp3\\' (Brak miejsca na
 > urządzeniu). -> i tak z pozostałymi dziesięcioma tysiącami plików, podczas gdy ipod jest
 > pusty..
 >
 > ..no właśnie, pusty? skoro ma wolne w przybliżeniu 57/55GB?
 > skąd ten minus, to zajęte -2?
 >
 > quatro:
 >
 > dmesg mówi:
 >
 > usb 1-8: new high speed USB device using ehci_hcd and address 8
 > scsi8 : SCSI emulation for USB Mass Storage devices
 > usb-storage: device found at 8
 > usb-storage: waiting for device to settle before scanning
 >   Vendor: Apple     Model: iPod              Rev: 1.62
 >   Type:   Direct-Access                      ANSI SCSI revision: 00
 > SCSI device sdb: 117210240 512-byte hdwr sectors (60012 MB)
 > sdb: assuming Write Enabled
 > sdb: assuming drive cache: write through
 > SCSI device sdb: 117210240 512-byte hdwr sectors (60012 MB)
 > sdb: assuming Write Enabled
 > sdb: assuming drive cache: write through
 >  /dev/scsi/host8/bus0/target0/lun0: [mac] p1 p2 p3
 > Attached scsi removable disk sdb at scsi8, channel 0, id 0, lun 0
 > Attached scsi generic sg1 at scsi8, channel 0, id 0, lun 0,  type 0
 > usb-storage: device scan complete
 >
 > a po próbie kopiowania plików malkontentuje z lekka:
 >
 > HFS+-fs: walked past end of dir
 > extend alloc file! (14680064,14641760,15005410)
 >
 > i czy input/output wynika z błędu w obliczeniu rozmiaru partycji czy na odwrót?
 > i dlaczego do cholery - działało, a nie działa? ;)
 > firmware został przeinstalowany. testowany na ajmaku.
 > bardzo prosiłabym o odpowiedź na ww. pytania i jakąkolwiek wskazówkę, odniesienie, cokolwiek.
 >
 > i dodatkowo, o ile to ma jakiekolwiek znaczenie w tym przypadku:
 > dmesg marudzi przy ejectowaniu:
 > program eject is using a deprecated SCSI ioctl, please convert it to SG_IO
 >
 > a sam eject marudzi:
 > localhost / # eject /mnt/ipod
 > eject: unable to eject, last error: Zły argument
 >
 > co jest bzdurą, bo ipod sie ejectuje (to jest, nie krzyczy już, co by do not disconnect)
 >
 > jeszcze raz dziękuję z góry za jakiekolwiek naprowadzenie
 >
Moze w nowszym kernelu będzie lepsza obsługa USB i nie będzie tych błędów?

kamjutka

  • Gość
funkcje w awk
« Odpowiedź #2 dnia: 2005-10-12, 17:41:42 »
2005-10-12 17:15:28 capsel napisał:

 > Moze w nowszym kernelu będzie lepsza obsługa USB i nie > będzie tych błędów?


ale to DZIAŁAŁO wcześniej ;)

Denton

  • Gość
funkcje w awk
« Odpowiedź #3 dnia: 2005-10-12, 14:45:01 »
Witam, natrafilem na cos bradzo dziwnego. Nie dzialaja mi funkcje wbudowane czyli for if itd. Wpisuje do pliku zwyklego, najprostszego ifa:
x=2
if (x % 2 == 0)
print "costam"
else
print "costam2"

Niestety po uruchomieniu tego skryciku wywala mi blad skladni .Normalnie jakas paranoja.

greg000

  • Gość
funkcje w awk
« Odpowiedź #4 dnia: 2005-10-12, 15:52:51 »
Polecam poczytanie troche o programowaniu w bash'u bo pewnie o to ci chodzi (tak wnioskuje z tego co tu wkleiles).

http://www.komputery-internet.net/linux/bash_prog3.php

oraz

www.google.pl :)

greg000

  • Gość
funkcje w awk
« Odpowiedź #5 dnia: 2005-10-12, 16:01:50 »

Denton

  • Gość
funkcje w awk
« Odpowiedź #6 dnia: 2005-10-12, 17:44:03 »
bash to bash a awk to awk,a to jest akurat funkcja awka a nie basha

Denton

  • Gość
funkcje w awk
« Odpowiedź #7 dnia: 2005-10-12, 17:46:16 »
dzieki za link ale to co tam jest napisane znam na pamiec bo wlasnie z tego sie uczylem i chyba widac ze to co ja napisalem dokladnie odpowiada konwencji przedstawionej w tym manualu i dlatego napisalem ze to paranoja ze nie dziala

wojtekm

  • Gość
funkcje w awk
« Odpowiedź #8 dnia: 2005-10-12, 17:54:06 »
W kawałku, który przedstawiłeś "x % 2" będzie zawsze równe 0. Może po prostu masz błąd w kodzie?

Wojtek

xis

  • Gość
funkcje w awk
« Odpowiedź #9 dnia: 2005-10-12, 18:01:18 »
Jeśli pisałeś plik ze skryptem w windowsowym notatniku (lub jakimolwiek narzędziem pod windowsem) to przyczyną błędu składni może być sposób w jaki windows określa nową linię (windows stosuje dwa znaki stwrujące nr, a Linux jeden n). Spróbuj w takim wypadku potraktować skrypt konzolowym narzędziem dos2unix, np:

dos2unix skrypt.sh

Nie mam pewności czy to jest przyczyna, ale wielokrotnie spotkałem się z błędami w skryptach shellowych spowodowanymi właśnie znakami nowej linii.

Denton

  • Gość
funkcje w awk
« Odpowiedź #10 dnia: 2005-10-13, 08:41:46 »
Skrypt napisalem pod linuxem ,a jesli chodzi o to ze x % 2 jest rowne 0 to nie ma to znaczenia bo wywala mi syntax error a z tego co wiem to jest to  blad skladni :/

Denton

  • Gość
funkcje w awk
« Odpowiedź #11 dnia: 2005-10-13, 09:06:41 »
kolejnym problemem jest to ze
getline zmienna < plik zamiast zapisywac dane do zmiennej sa wypisywane na ekran

Denton

  • Gość
funkcje w awk
« Odpowiedź #12 dnia: 2005-10-13, 12:24:43 »
Dzisiaj zauwazylem ze kiedy wpisze funkcje w lini komend to dzialaja ,tylko ze ja wciaz potrzebuje miec to w pliku :/

greg000

  • Gość
funkcje w awk
« Odpowiedź #13 dnia: 2005-10-13, 12:41:21 »
Wg. opisu awk to chyba powinno byc tak:

#! /bin/awk -f

BEGIN {
suma = 0

while ((getline a < "lista") > 0)
   suma = suma + a

print "Suma liczb z pliku LISTA: " a
close("lista")

if (suma <10)
    print "Suma mniejsza niz 10"
else
    print "Suma wieksza niz 10"
}

to nazwa przykladowego pliku z liczbami.
Teraz to juz chyba wszytko dziala albo ? :)

Pozdr

Denton

  • Gość
funkcje w awk
« Odpowiedź #14 dnia: 2005-10-13, 13:01:23 »
objalem calego mojego if a nawiasem {} no i niby zaczal dzialac ,tylko ze poza wypisaniem tego co powinien ,wywala mi na ekran wszystko to co bylo w pliku wejsciowym :/