Stability AI představila SDXL Turbo, tj. umělou inteligenci pro generování obrázků z textového popisu v reálném čase, viz ukázka na YouTube.
Svobodná webová platforma pro sdílení a přehrávání videí PeerTube (Wikipedie) byla vydána v nové major verzi 6. Přehled novinek i s náhledy a videi v oficiálním oznámení a na GitHubu (6.0.0, 6.0.1).
S eDoklady lze mít od ledna 2024 občanku v mobilní aplikaci [Digitální a informační agentura – DIA].
Google představil novou doménu nejvyššího řádu: .meme. Viz například knowyour.meme nebo find.meme.
IKEA představila 3 senzory pro chytrou domácnost: senzor na dveře a okna PARASOLL, bezdrátový pohybový senzor VALLHORN a senzor úniku vody BADRING. Budou kompatibilní s Home Assistant?
Weston, referenční implementace kompozitoru pro Wayland, byl vydán ve verzi 13.0.0. Přehled novinek v oznámení.
Laboratoře CZ.NIC vydaly novou verzi 4.23.0 aplikace Datovka, tj. svobodné multiplatformní desktopové aplikace pro přístup k datovým schránkám a k trvalému uchovávání datových zpráv v lokální databázi. Přidána byla podpora pro velkoobjemové datové zprávy (VoDZ) a pro typy datových schránek PFO_ARCH, PFO_AIAT a PFO_AZI. Další novinkou je pamatování velikosti dialogových oken, pozice ovládacích prvků, šířek sloupců a řazení položek
… více »Distribuce Tails specializující se ochranu online soukromí uživatele byla vydána ve verzi 5.20. Mimo jiné aktualizuje Tor Browser (13.0.4) a Thunderbird (115.5), opravuje několik chyb.
Bylo rozhodnuto, že Red Hat Enterprise Linux 10, jehož vydání je plánováno na první pololetí 2025, bude už bez X serverů. Zůstane pouze Xwayland.
Mobilní Datovka, tj. svobodná aplikace pro přístup k datovým schránkám pro zařízení s operačním systémem iOS a Android, byla minulá týden vydána v nové verzi 2.0.0. Zásadně bylo zmodernizováno uživatelské rozhraní. Přibyla možnost přepínat aplikaci mezi světlým a tmavým režimem. Současně byl publikován rozhovor QaA: Projekt Datovka očima vývojářů.
Zdravim potreboval bych prehlednejsi vypis nez da iwlist jenze vse co sem nasel je prot atheros a to mi s bcm43xx nefunguje.
iwlist wlan0 scan | egrep -i 'address|essid|key|quality|frequency'
Cell 01 - Address: 00:4F:62:1F:50:CD
Channel:1
Frequency:2.412 GHz (Channel 1)
Quality=61/70 Signal level=-49 dBm
Encryption key:on
ESSID:"NET"
jak udelat aby vypsal
essid Address key signal Ch Freq
----------------------------------------------------------------
"NET" 00:4F:62:1F:50:CD on 61/70 , -49 dBm 1 2.412 GHz
nerozumim tomu jak udelat script kdyz vypis muze byt ruzne dlouhy protoze pokazde iwlist vypise jinak dlouhej seznam
nemate nekdo neco s awkem nebo sedem ci takneco co by udelalo podobny jednoradkovy vypis vsech siti ?
Dekuju
iwlist wlan0 scan | grep ESSID | cut -d":" -f 2 | sed 's/\"//g' a iwlist wlan0 scan | grep Quality | cut -d "=" -f2 | cut -d "/" -f1 a jiné přeci při každém iwlist mi vyjede jinej seznam tak jak vyjmout ty rozsahy ? nebo awk : iwlist wlan0 scanning| awk '/Cell/ {print $5}; /ESS/ {print substr($1,7)}; /Freq/ {print substr($1,11)}; /Qual/ {print substr($1,9)}; /Encr/ {print substr($2,5)}'no ale jak tomu dát formu a aby to jelo při více sítích a byla každá na jiném řádku ? no prostě se snažim o něco jako http://www.simandl.cz/stranky/linux/wifimon/soubory/wifimon-0.5.5 klidně i s tim výpisem wbaru na konci ...
BEGIN {
cnt=0;
}
END {
print "Address essid key signal Ch Freq";
print "----------------------------------------------------------------";
for (i=0; i<cnt; i++)
print cells[i, "addr"], " ", cells[i, "essid"];
}
/ESSID/ {
x=match($0, "\".*\"");
cells[cnt-1, "essid"]=substr($0, x);
}
/Cell [0-9]+.*Address:.* .*$/ {
cells[cnt, "addr"]=$5;
cnt+=1;
}
a potom iwlist wan0 scan | awk -f file.awk
iwlist ... | while read line; do if [[ $line == ... ]]; then ..... fi done
#!/usr/bin/python import re, sys c = re.compile(r'(?ms)' r'^ Cell (?P<cell>\d+) - Address: (?P<addr>[0-9A-F:]+)\n' r'(?P<info>(?: [^\n]*\n)*)') def getgroup(info, name): m = re.search(r'(?m)^ %s\s*(?P<value>.*)$' % name, info) if m: return m.group('value').rstrip() return '' print '''\ ----------------------------------------------------------------------- essid address key signal frequency -----------------------------------------------------------------------''' fmt = '%16s %17s %3s %14s %s' for x in c.finditer(sys.stdin.read()): addr = x.group('addr') info = x.group('info') essid = getgroup(info, 'ESSID:') encrypted = getgroup(info, 'Encryption key:') channel = getgroup(info, 'Channel:') frequency = re.sub(r'\s*\(.*', '', getgroup(info, 'Frequency:')) signal = getgroup(info, 'Quality=').replace('Signal level=', '') print fmt % (essid, addr, encrypted, signal, frequency)
A jeste přídám jeden skript pro priznivce sedu :)
iwlist ath0 scanning | sed -n -e '/ESSID/p;/Cell/p;/Frequency/p;/Quality/p;' | \
sed -e '$!N;N;N;s/.*Cell \([0123456789]*\) - Address: \(.*\)\n.*ESSID:"\(.*\)"\n.*Frequency:\([0123456789\.]*\) GHz (Channel \([0123456789]*\)).*\n.*Signal level[=:]\(.*\) .*Noise level[=:]\(.*\)/<tr><td> \1 <td>\3 <td>\2 <td><center>\5<\/center> <td>\4 <td>\6 <td>\7/'
Vysledek je videt zde:
http://78.108.103.11:11080/cgi-bin/aplist.cgi
#!/bin/bash a=0;b=0;c=0;d=0;e=0;f=0;g=0;h=0;x=0 echo ----------------------------------------------------------------- echo "Ch Essid Bssid Frekvence Kvalita Signal Kodovani Mod" echo ----------------------------------------------------------------- while read line;do [ "`echo $line | grep ESSID`" ] && essid[$a]=`echo "$line" | cut -d : -f 2 | grep -o '[a-z,A-Z,0-9]*'` [ "`echo $line | grep Address`" ] && address[$b]=`echo "$line" | awk '{print $5}'` [ "`echo $line | grep Channel:`" ] && channel[$c]=`echo "$line" | cut -d : -f 2 ` [ "`echo $line | grep Freq`" ] && freq[$d]=`echo "$line" | awk '{print $1}' | cut -d : -f 2` [ "`echo $line | grep Quali`" ] && qual[$e]=`echo "$line" | awk '{print substr($1,9)}'` [ "`echo $line | grep Signal`" ] && signal[$f]=`echo "$line" | awk '{print substr($3,7,3)}' ` [ "`echo $line | grep key`" ] && key[$g]=`echo "$line" | awk '{print substr($2,5,15)}' ` [ "`echo $line | grep Mode`" ] && mode[$h]=`echo "$line" | awk '{print substr($1,6,15)}' ` done < <(iwlist scan 2>/dev/null ) while [ $x -lt ${#essid[@]} ];do echo ${channel[$x]} , ${essid[$x]} , ${address[$x]} , ${freq[$x]} , ${qual[$x]} , ${signal[$x]} , ${key[$x]} , ${mode[$x]} (( x++ )) doneTak jen nevim jak udelat aby se sloupecky pevne vypisovaly vzdy na stejnem miste bez pouziti tabulatoru (jen s mezerama) kdyz delky nazvu siti mohou byt ruzne a take hodnoty.
user@NB-Pepe:~$ ./script ----------------------------------------------------------------- Ch Essid Bssid Frekvence Kvalita Signal Kodovani Mod ----------------------------------------------------------------- 1 , NET , 00:4F:62:1F:50:CD , 2.412 , 63/70 , -47 , on , Master 2 , SauronNet Cheb20 , 00:02:72:71:5D:08 , 2.417 , 14/70 , -96 , off , Master 7 , ALLCMPA , 00:4F:62:17:CF:BD , 2.442 , 34/70 , -76 , on , Master 6 , ALLCMP , 00:4F:62:00:4D:81 , 2.437 , 49/70 , -61 , on , Master 7 , APD17P , 00:4F:62:17:E3:39 , 2.442 , 30/70 , -80 , on , Master user@NB-Pepe:~$ #!/bin/bash a=0;b=0;c=0;d=0;e=0;f=0;g=0;h=0;x=0 echo ----------------------------------------------------------------- echo "Ch Essid Bssid Frekvence Kvalita Signal Kodovani Mod" echo ----------------------------------------------------------------- while read line;do [ "`echo $line | grep ESSID`" ] && essid[$a]=`echo "$line" | cut -d : -f 2 | grep -o '[a-z,A-Z,0-9]*'` && ((a++)) [ "`echo $line | grep Address`" ] && address[$b]=`echo "$line" | awk '{print $5}'` && ((b++)) [ "`echo $line | grep Channel:`" ] && channel[$c]=`echo "$line" | cut -d : -f 2 ` && ((c++)) [ "`echo $line | grep Freq`" ] && freq[$d]=`echo "$line" | awk '{print $1}' | cut -d : -f 2` && ((d++)) [ "`echo $line | grep Quali`" ] && qual[$e]=`echo "$line" | awk '{print substr($1,9)}'` && ((e++)) [ "`echo $line | grep Signal`" ] && signal[$f]=`echo "$line" | awk '{print substr($3,7,3)}' ` && ((f++)) [ "`echo $line | grep key`" ] && key[$g]=`echo "$line" | awk '{print substr($2,5,15)}' ` && ((g++)) [ "`echo $line | grep Mode`" ] && mode[$h]=`echo "$line" | awk '{print substr($1,6,15)}' ` && ((h++)) done < <(iwlist wlan0 sc 2>/dev/null ) while [ $x -lt ${#essid[@]} ];do echo ${channel[$x]} , ${essid[$x]} , ${address[$x]} , ${freq[$x]} , ${qual[$x]} , ${signal[$x]} , ${key[$x]} , ${mode[$x]} (( x++ )) done
grep
, a to s velkou nadějí na vítězství. Na každý řádek výstupu se spouští osmkrát grep + několik dalších zbytečných programů, pokud se daná položka náhodou najde.
Používáš tam awk, tak si to napiš celé v awk, když neumíš python (perl, ruby, něco rozumného), ale do jednoho skriptu pro awk. Šlo by to i v sedu, v pythonu jsem to napsal, jak jsem to napsal, aby moc nezáviselo na změnách formátu (např. pořadí položek, řada změn to ošem i tak rozbije), ale to je zjevně házení perel sviním...
#!/usr/bin/perl # use strict; my @scan = `/sbin/iwlist scan`; push @scan, ' Cell'; my @list = (); my $cnt = -1; foreach my $line (@scan) { SW: for ($line) { /^\s*Cell/ && do { if ($cnt >= 0) { my $bar = ''; for (my $i = 0; $i <= $list[$cnt]{signal}; $i++) {$bar .= '#';} #for (my $i = abs($list[$cnt]{signal}); $i <= abs($list[$cnt]{noise}); $i++) {$bar .= '#';} $list[$cnt]{bar} = $bar; $line =~ s/Cell//; } $cnt++; redo SW }; /Address:\s+(\S+)/ && do { $list[$cnt]{addr} = $1; last SW; }; /^\s+ESSID:/ && do { ($list[$cnt]{id}) = $line =~ /(".*")/; last SW; }; /\(Channel\s+(\d+)\)/ && do { $list[$cnt]{ch} = $1; last SW; }; /^\s+Quality/ && do { ($list[$cnt]{signal}, $list[$cnt]{noise}) = $line =~ /Quality=(\d+)\/(\d+)/; #($list[$cnt]{signal}, $list[$cnt]{noise}) = $line =~ /Signal level=(-?\d+).*Noise level=(-?\d+).*/; last SW; }; /^\s+Encryption key:(.*)/ && do { $list[$cnt]{key} = $1; last SW; } } } foreach my $cell (sort {$a->{ch} <=> $b->{ch}} @list) { printf "Address: %17s Channel: %2s key:%3s ESSID: %s\n", $$cell{addr}, $$cell{ch}, $$cell{key}, $$cell{id}; printf "%4s/%4s %s\n", $$cell{signal}, $$cell{noise}, $$cell{bar}; }
Tiskni
Sdílej: