Společnost Fairphone stojící za stejnojmennými mobilními telefony představila (pdf) bezdrátová špuntová sluchátka Fairbuds 2. Opravitelná, s vyměnitelnými bateriemi a tříletou zárukou. Cena 119 eur.
O víkendu 17. a 18. října lze na brněnském výstavišti navštívit s jednou vstupenkou dvě akce: Maker Faire Brno, festival inovací, kreativity a kutilství, a GameDev Connect, akci určenou pro všechny současné a hlavně budoucí herní vývojáře.
Canonical vydal (email) Ubuntu 26.10 Stonking Stingray. Přehled novinek v poznámkách k vydání. Jedná se o průběžné vydání s podporou 9 měsíců, tj. do července 2027.
České Radiokomunikace (CRA) ve čtvrtek odstřelily rozhlasový vysílač Liblice B, dosud nejvyšší stavbu v Česku. O demolici dvou 355 metrů vysokých stožárů rozhodly z důvodu jejich nevyužívání, už v úterý přitom zhasly a demontovaly jejich osvětlení.
Microsoft Defender nově podporuje linuxové desktopy.
Oficiální Epic Games Launcher je v nové preview verzi poprvé dostupný i pro Linux (FAQ). Pracuje se na novém Easy Anti-Cheatu pro Linux (EAC Linux v2) a podpoře hry Fortnite na Linuxu.
Desktopové prostředí KDE Plasma bylo vydáno ve verzi 6.8. Novinky zahrnují lepší podporu vzdálené plochy, sdílení a nahrávání obrazovky a řadu drobností napříč uživatelským rozhraním (úplný seznam změn, shrnutí ve wiki).
Apple představil 7palcový displej Apple HomeView s podporou Apple Intelligence a Siri AI pro ovládání chytré domácnosti, novou řadu vybavení chytré domácnosti Apple Home Collection, další generaci HomePodu mini a novou Apple TV 4K. Apple HomeView není v Evropské unii v prodeji, jelikož umělá inteligence Siri v rámci systému iOS v EU momentálně není k dispozici. Apple spolupracuje s EU a snaží se najít cestu, jak situaci vyřešit.
KDE slaví 30 let. Přesně před 30 lety, 14. října 1996, poslal Matthias Ettrich do diskusní skupiny comp.os.linux.misc zprávu, která započala historii projektu KDE. Důležité milníky jsou zobrazeny na časové ose.
Byl vydán Mozilla Firefox 158.0. Stejně jako Chrome 155 s podporou JPEG XL (test). Přehled novinek v poznámkách k vydání a poznámkách k vydání pro vývojáře. Řešeny jsou rovněž bezpečnostní chyby. Nový Firefox 158 bude brzy k dispozici také na Flathubu a Snapcraftu.
uzivatel1 in : 94M uzivatel1 out : 30M uzivatel2 in : 315M uzivatel2 out : 45M uzivatel3 in : 169M uzivatel3 out : 50MPotřeboval bych dostat do souboru toto (tzn. sečíst odeslaná i přijatá data a zobrazit takto):
uzivatel1; 124 uzivatel2; 360 uzivatel3; 219Zkoušel jsem to pomocí AWKu, ale hrozně v tom tápu. Neporadil by někdo prosím? Dekuji
) import re
input = file('souborA', 'r')
output = file('souborB', 'w')
result = {}
try:
for line in input.readlines():
splitted = re.split('\s', line)
key = splitted[0]
value = int(re.split('\D', splitted[3])[0])
if result.has_key(key):
result[key] = result[key] + value
else:
result[key] = value
for pairs in result.items():
output.write(pairs[0] + ';\t' + str(pairs[1]) + '\n')
finally:
input.close()
output.close()
AWK neumim (ale chci se ho nekdy naucit), tak ti alespon dam linky na dokumentaci.
Ceska: Tam najdes dalsi odkazy.
awk 'BEGIN{MU="";SUM=0}{SUM1=gensub(/[^0-9]$/,"",1,$NF) + 0; if (MU == $1 || MU == ""){MU=$1;SUM+=SUM1} else {printf "%s - %i\n",MU,SUM; SUM=SUM1;MU=$1}}END{printf "%s - %i\n",MU,SUM}'
- nebo udelat awk script (a chmod +x) :
#!/bin/awk -f
BEGIN{MU="";SUM=0} # MU: Minuly Uzivatel, SUM: jeho soucet dat
{SUM1=gensub(/[^0-9]$/,"",1,$NF) + 0 # na konci posledni polozky (=objem) urizni vse mimo cislice (tady rezu 'M')
if (MU == $1 || MU == ""){ # uzivatel na predchozi radce je stejny jako na aktualni nebo zacinam
MU=$1;SUM+=SUM1
} else {
printf "%s - %i\n",MU,SUM; SUM=SUM1;MU=$1} #zmena, vypisuji a minuly=aktualni
}
END{printf "%s - %i\n",MU,SUM} # a dotisk posledniho po zpracovani souboru
AWK je velmi dobrá věc, ale je to trochu jednodušší s drobnou pomocí sedu:
cat vstup.txt | \
sed 's/ *\([^ \t]*\).*:[ \t]*\([0-9]*\).*/\1;\t\2/' | \
awk '{ if ( par % 2 ) { sum += $2; print $1 "\t" sum; } else { sum = $2; } par++; }' \
> vystup.txt
Tady se jasně dělí úlohy: sed edituje, awk počítá. Doufám, že to takhle stačí a že to pomůže. Pokud potřebujete ještě něco jiného, stačí říct. 
#!/usr/bin/env python
import re
infile = open('infile.dat')
regexp = re.compile(r'^\s+(\S+) (in|out)\s+:\s+(\d+)(.*)')
result={}
for line in infile.xreadlines():
user, direction, amount, unit = re.search(regexp, line).groups()
amount = int(amount)
if 'G' in unit:
amount *= 1024*1024*1024
elif 'M' in unit:
amount *= 1024*1024
elif 'k' in unit:
amount *= 1024
try:
result[user] += amount
except KeyError:
result[user] = amount
infile.close()
outfile = open('outfile.dat', 'w')
for user, amount in result.items():
outfile.write('%s;\t%d\n' %(user, amount))
outfile.close()
A vůbec - tohle by přece měl dělat ten původní program, který vygeneroval ten soubor. Nebude lepší spíš zasáhnout do zdrojáku než parsovat výstup? Hrozí nebezpečí, že se časem změní formát nebo že bude potřeba nějaká informace, kterou původní program měl, ale nevypsal.
Tiskni
Sdílej: