Ik wil graag een CSV-file uitlezen met een shell-script (bash) die voor elke regel bepaalde gegevens opzoekt en daar opdrachten mee kan doen. Nu loop ik echter tegen een ontzettend eenvoudig probleem aan: hoe lees ik nou regel voor regel een file in? Wat ik tot nu toe heb geprutst:
(de echo $i is puur om te kijken wat er gebeurt)
Een regel uit de CSV-file:
Wat mijn scripje nu echter als output geeft, is het volgende:
Hij geeft dus na iedere spatie een nieuwe $i (als je begrijpt wat ik bedoel). Hier heb ik dus verrekte weinig aan omdat het aantal spaties per regel best kan verschillen (dubbele voornaam, lange straatnaam, etc).
Is er een manier om gewoon de hele regel in $i te zetten? Daarna kan ik met bv. awk die gegevens er vrij gemakkelijk uitvissen om er wat nuttigs mee te doen.
code:
1
2
3
4
5
| for i in `cat database.csv` do echo $i done |
(de echo $i is puur om te kijken wat er gebeurt)
Een regel uit de CSV-file:
code:
1
| "Piet Paaltjes",m,Drs,"Kalverstraat 103 4632BL Amsterdam","Faculteit der Informatiewetenschappen",ppaaltjes@science.uva.nl,23-09-06 |
Wat mijn scripje nu echter als output geeft, is het volgende:
code:
1
2
3
4
5
6
7
| "Piet Paaltjes",m,Drs,"Kalverstraat 103 4632BL Amsterdam","Faculteit der Informatiewetenschappen",ppaaltjes@science.uva.nl,23-09-06 |
Hij geeft dus na iedere spatie een nieuwe $i (als je begrijpt wat ik bedoel). Hier heb ik dus verrekte weinig aan omdat het aantal spaties per regel best kan verschillen (dubbele voornaam, lange straatnaam, etc).
Is er een manier om gewoon de hele regel in $i te zetten? Daarna kan ik met bv. awk die gegevens er vrij gemakkelijk uitvissen om er wat nuttigs mee te doen.