Portál AbcLinuxu, 11. května 2025 15:50

Dotaz: awk getline -chyba

4.1.2007 16:56 Terka | skóre: 13
awk getline -chyba
Přečteno: 259×
Odpovědět | Admin
dotaz je az dole
mam 2 soubory, "in" a "dvojice":
chci je spojit podobne jako v SQL inner join, 
where in.2sloupec=dvojice.1sloupec 

toto je in:
a b
a e

toto je dvojice:
a b
a c
b d
e a
e g


chci je spojit tak, abych propojila 2 sloupec in na 1 sloupec dvojice 
tj 

b
e
spojit s
a
a
b
e
e



abych dostala
a b d
a e a
a e g

dotaz: proc mi awk uz projede soubor in jen pro 1.radek?

awk ' 
       {radek = $0}
       {while ("cat dvojice" | getline dvoj)
         print radek,dvoj
         next
       }
      {print}
         ' in

dotaz 2: proc mi hlasi chybu u:
awk ' 
       {radek = $0
       while ( getline prom < dvojice >0)  #tady ma byt chyba
         print radek,prom  
       next
       }
      {print "ahoj"}
     
     ' in


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

Josef Kufner avatar 4.1.2007 22:11 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: awk getline -chyba
Odpovědět | | Sbalit | Link | Blokovat | Admin
ad dotaz 2:
proc mi hlasi chybu u:
Opravené to vypadá takto:
awk ' 
       {radek = $0
       while ( getline prom < "dvojice" >0)  #tady ma byt chyba
         print radek,prom  
       next
       }
      {print "ahoj"}
     
     ' in
Bez uvozovek je to bráno jako proměnná a ta není nastavena.
Hello world ! Segmentation fault (core dumped)
Josef Kufner avatar 4.1.2007 22:17 Josef Kufner | skóre: 70
Rozbalit Rozbalit vše Re: awk getline -chyba
Odpovědět | | Sbalit | Link | Blokovat | Admin
ad dotaz 1:
awk '{
        radek = $0
        while (getline dvoj <"dvojice")
           print radek,dvoj
        close ("dvojice")
     }
     {print}
' in
… hádám, že to next dělalo něco jiného než jsi chtěla.
Hello world ! Segmentation fault (core dumped)
5.1.2007 09:54 Jiří Lisický | skóre: 31 | blog: JIL_blog | Olomouc
Rozbalit Rozbalit vše Re: awk getline -chyba
Odpovědět | | Sbalit | Link | Blokovat | Admin
pokud netrváš na awk:

join -1 2 -o 1.1,1.2,2.2 in dvojice

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.