Portál AbcLinuxu, 26. dubna 2024 21:15


Dotaz: modifikace tabulky

16.5.2006 14:01 Mirekh
modifikace tabulky
Přečteno: 69×
Zdravim

Mohl byste mi nekdo poradit, jak nejjednoduseji modifikuji nasledujici typ tabulky.

ID datum download[B] upload[B]

1 2006-05-01 00:00:00 2650433 1538376

2 2006-05-01 00:00:00 846872298 91846365

3 2006-05-01 00:00:00 83691861 2924621

4 2006-05-01 00:00:00 685708 667298

5 2006-05-01 00:00:00 1271977752 76270418

6 2006-05-01 00:00:00 1966648368 247124512

7 2006-05-01 00:00:00 2049557 0

8 2006-05-01 00:00:00 180044155 10432118

Potrebuji zmenit polozku download na 0 v pripade, ze je bud mensi nez 3MB nebo kdyz je upload roven 0.

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

Odpovědi

Diskuse byla administrátory uzamčena.
FAQ: Proč byl uzamčen/smazán můj dotaz v Poradně?

16.5.2006 14:04 s0 | skóre: 32 | blog: nejchytřejší kecy | prágl
Rozbalit Rozbalit vše Re: modifikace tabulky
proc mam pocit, ze si tu ze mne dnes vsichni delaji srandu?! napoveda: SQL reference, prikaz UPDATE. treba. tezko rict, ceho se tykala otazka...
Kuolema Kaikille (Paitsi Meille).
16.5.2006 14:06 Mirekh
Rozbalit Rozbalit vše Re: modifikace tabulky
Omlouvam se. Zapomnel jsem dodat, ze to chci pomoci bash.

Mirek
16.5.2006 14:07 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: modifikace tabulky
Na takový typ úloh bude asi nejvhodnější použít awk.
16.5.2006 14:13 Mirekh
Rozbalit Rozbalit vše Re: modifikace tabulky
To me take napadlo ale nevim jak modifikovat dany sloupec (danou polozku). Kdyz dam neco jako:

awk '{if($5=="0") $4=0 print $0}' pokus2.csv

tak mi to hlasi syntaktickou chybu. Nevim jak to presne napsat.
16.5.2006 22:19 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: modifikace tabulky
Teď mi není moc jasné, co jste tím zápisem vlastně mínil. Původní požadavek bych napsal nějak takto:
{
  printf("%d %s %s %d %d\n",
    $1, $2, $3, (($4<3145728 || $5==0) ? 0 : $4), $5);
}
16.5.2006 22:20 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: modifikace tabulky
A před tu levou složenou závorku přidat pro jistotu
  /^ *[[:digit:]]/
aby se nepokoušel zpravovávat záhlaví té tabulky.
16.5.2006 14:33 Mti. | skóre: 31 | blog: Mti
Rozbalit Rozbalit vše Re: modifikace tabulky
no jestli to "musi" byt v bashi...
while read id dat cas datd datu
  do
   if ((datd<3000000)) || ((datu==0))
   then
    datd=0
   fi
   echo $id $dat $cas $datd $datu > tabulka2
  done < tabulka

mv tabulka2 tabulka
... doufam, ze je to domaci uloha :-)
Vidim harddisk mrzuty, jehoz hlava plotny se dotyka...
16.5.2006 14:34 Mti. | skóre: 31 | blog: Mti
Rozbalit Rozbalit vše Re: modifikace tabulky
za tim echo ma byt >> :-)
Vidim harddisk mrzuty, jehoz hlava plotny se dotyka...
16.5.2006 16:24 Jan Martinek | skóre: 43 | blog: johny | Brno
Rozbalit Rozbalit vše Re: modifikace tabulky
Škoda že to musí být v Bashi ;-)
#!/usr/bin/env python
import string

for line in file('tabulka'):
  polozky = line.split()
  if int(polozky[3]) < 3*1024**2 or int(polozky[4]) == 0:
    polozky[3] = '0'
  print string.join(polozky)
8.7.2006 11:40 Michal Vyskočil | skóre: 60 | blog: miblog | Praha
Rozbalit Rozbalit vše Re: modifikace tabulky
Ahoj,

bohužel musím tuto diskusi zablokovat - poděkování směrujte na spammery. Naštěstí se zdá, že byla otázka vyřešena.

Děkuji za pochopení
When your hammer is C++, everything begins to look like a thumb.

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.