Portál AbcLinuxu, 10. května 2025 08:09

Dotaz: Vymazanie zlých riadkov (nesprávny počet oddeľovačov) v CSV

29.3.2012 16:46 Peter
Vymazanie zlých riadkov (nesprávny počet oddeľovačov) v CSV
Přečteno: 212×
Odpovědět | Admin
Dobrý deň vám prajem.

Každý deň mi od jedného dodávateľa prichádza CSV súbor (oddelený bodkočiarkov) a na cca 10.000 záznamov mi pripadá cca 10 zlých záznamov. Zväčša sú to záznamy kde sa v texte nachádza bodkočiarka a keďže ten text nie je v úvodzovkách tak mi to môj parser vyhodnotí, že na danom riadku sa nachádza nie povedzme 15 oddeľovačov, ale 16. A stalo sa mi už aj, že som mal riadok kde niekoľko oddeľovačov chýbalo.

Čiže suma-sumárum, potrebujem jednoduchú vec a to nejakým skriptom z toho csv odstrániť všetky riadky v ktorých sa nenachádza presne (povedzme) 15 bodkočiarok.

Vopred veľmi pekne ďakujem za pomoc.

Řešení dotazu:


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

Odpovědi

29.3.2012 17:16 ency | skóre: 4
Rozbalit Rozbalit vše Re: Vymazanie zlých riadkov (nesprávny počet oddeľovačov) v CSV
Odpovědět | | Sbalit | Link | Blokovat | Admin
Uplne nejjednodussi reseni co me napada je cat file | grep (regex pro 15x ;) > novy.file
8GB Extra Dropbox Space
29.3.2012 17:20 Marek
Rozbalit Rozbalit vše Re: Vymazanie zlých riadkov (nesprávny počet oddeľovačov) v CSV
Odpovědět | | Sbalit | Link | Blokovat | Admin
awk -F \; '{if (NF == 15) print $0;}' zly.csv > csv_s_15_bodkociarkami.csv

29.3.2012 17:28 Marek
Rozbalit Rozbalit vše Re: Vymazanie zlých riadkov (nesprávny počet oddeľovačov) v CSV

oprava: bud ... NF==16 ... ,

resp.

... csv_s_14_bodkociarkami

NF je pocet poli, cize ked je n oddelovacov (;), tak poli je n+1.

29.3.2012 20:10 Peter
Rozbalit Rozbalit vše Re: Vymazanie zlých riadkov (nesprávny počet oddeľovačov) v CSV
Ano, ano, ano, ďakujem, ďakujem, ďakujem :-D

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.