awk első sor

Fórumok

A problémám az, hogy az awk mindig kihagyja nekem az első sor feldolgozását. (A fórumok nagy többsége éppen az ellenkezőjét szokták tárgyalni.)

a fájl neve out, amit be szeretnék olvasni:
WAIT|1|
WAIT|2|
WAIT|3|

A konkrét parancs, amit használnék:
$ awk 'FS="|" { print $1","$2}' out

Az eredmény:
WAIT|1|,
WAIT,2
WAIT,3

itt látszik, hogy az első sorral semmit sem csinál. Ha van valakinek egy használható ötlete, akkor kérem tegye meg, hogy megosztja velem. Köszi.

Hozzászólások

awk 'BEGIN{FS="|"} {print $1","$2}' out

vagy

awk -F "|" '{print $1","$2}' out

szerintem.

A field separator-t beállítod akkor, amikor feldolgoznád az első sort. De ez az éppen feldolgozandó sorra (első sor) nem vonatkozik, ott még a DEFAULT lesz FS értéke.

A BEGIN egy speciális blokk, az utána szereplő utasításokat a STDIN feldolgozása ELŐTT hajtja végre. Ott célszerű pl. az FS-t is beállítani. (Vagy *awk parancssor kapcsolóival akár)

http://hup.hu/taxonomy/term/209
http://www.youtube.com/watch?v=QXz7-BNC6jw
http://nocirc.org/