BASH - upravy textoveho souboru
Kilian Igor
Igor.Kilian na infogas.sk
Čtvrtek Prosinec 8 13:10:50 CET 2005
Na celkovu upravu suboru doporucujem "awk".
Napr. pre riadky vyssie ako 16 (teda vyssie cislo ako 16 v prvej
polozke):
awk -F\; '$1 > 16 {split($2,d,"."); split($3,t,":"); print $1"
"d[3]d[2]d[1]t[1]t[2]t[3]" "$4}' vstupny_subor
Dostane clovek vystup z Vami zadaneho prikladu:
17 20051120161725 2,4
18 20051120161828 2,3
19 20051120161930 2,0
Pravdaze vystupom mozu byt aj sql prikazy.
Igor
> -----Original Message-----
> From: Michal Jezek [mailto:kiwi.fon.tis na atlas.cz]
> Sent: Thursday, December 08, 2005 11:16 AM
> To: linux na linux.cz
> Subject: BASH - upravy textoveho souboru
>
> Dobry den.
> Mam teplotni cidlo, ktere mam pripojene k seriovem portu.
> BASH skriptem si z nej zjistim teplotu a chci si ji ukladat
> do textoveho souboru, ktery nasledne 1x denne z jineho
> serveru automaticky budu natahovat do Firebird databaze.
> Odtud uz data zobrazuji pres php na webu.
> Potrebuji ve zminenem textovem souboru, ktery ma zhruba
> takovouhle strukturu:
> ......
> 15;20.11.2005;16:15:22;2,5
> 16;20.11.2005;16:16:23;2,6
> 17;20.11.2005;16:17:25;2,4
> 18;20.11.2005;16:18:28;2,3
> 19;20.11.2005;16:19:30;2,0
> ........
> provadet upravy. A to najit posledni radek, z nej zjistit
> prvni cislo pred strednikem (poradove cislo mereni abych to
> mohl jednoduse tahat do databaze), a pripadne vytahnout dalsi
> udaje - datum, cas a teplotu (oddelovac je strednik, ale
> nemusi to byt nutne tento znak) a tyto udaje natahnout do
> promenych pro dalsi praci va skriptu (pridani dalsiho zaznamu
> nebo pretahovani do SQL databaze)
> Soubor si otevru, nejaky radek z nej nactu, ale nevim
> jakym zpusobem ten radek rozpitvat na jednotlive polozky.
> Nezjistil jsem jaky prikaz na toto pouzit. Nebo na to jdu od
> zacatku spatne a musim na to pouzit jiny skriptovaci jazyk?
>
> Diky za pripadne nakopnuti spravnym smerem
> Michal
> Jezek---------------------------------------
> braun.atlas.cz http://www.atlas.cz/clickAD.asp?ad=84530
Další informace o konferenci Linux