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.
- 1154 megtekintés
Hozzászólások
awk 'BEGIN{FS="|"} {print $1","$2}' out
vagy
awk -F "|" '{print $1","$2}' out
szerintem.
- A hozzászóláshoz be kell jelentkezni
köszi, mindkettő király. Bár egyáltalán nem világos, hogy az enyém miért nem megy. Lehet, hogy csak túlságosan kezdő vagyok még...
- A hozzászóláshoz be kell jelentkezni
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/
- A hozzászóláshoz be kell jelentkezni
így már érthető
köszi
- A hozzászóláshoz be kell jelentkezni
Megelőztek.
-----
"Én vagyok a hülye, hogy leállok magával vitatkozni."
- A hozzászóláshoz be kell jelentkezni