Společnost CORSAIR podporuje svůj systém iCUE LINK pouze ve Windows a macOS. Jak jej ovládat v Linuxu? OpenLinkHub (GitHub) je open source linuxové rozhraní k iCUE LINK. Z webového rozhraní na adrese http://localhost:27003 lze ovládat RGB osvětlení, rychlost ventilátorů, nastavovat klávesnice, myši, headsety…
Ve funkci koordinátora k bitcoinové kauze skončil bývalý ústavní soudce David Uhlíř. Informaci, kterou zveřejnil Deník N, potvrdila Radiožurnálu ministryně spravedlnosti Eva Decriox (ODS). Uvedla, že odchod byl po vzájemné dohodě. „Jeho mise je ukončená, auditní procesy se už povedlo nastavit,“ řekla. Teď má podle ministryně další kroky podniknout policie a státní zastupitelství. Koordinátorem jmenovala ministryně Uhlíře 19. června.
Byla vydána nová verze 25.07.26 svobodného multiplatformního video editoru Shotcut (Wikipedie) postaveného nad multimediálním frameworkem MLT. Nejnovější Shotcut je již vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.
Po 9 týdnech vývoje od vydání Linuxu 6.15 oznámil Linus Torvalds vydání Linuxu 6.16. Přehled novinek a vylepšení na LWN.net: první a druhá polovina začleňovacího okna a Linux Kernel Newbies.
Americký výrobce čipů Intel propustí 15 procent zaměstnanců (en), do konce roku by jich v podniku mělo pracovat zhruba 75.000. Firma se potýká s výrobními problémy a opouští také miliardový plán na výstavbu továrny v Německu a Polsku.
MDN (Wikipedie), dnes MDN Web Docs, původně Mozilla Developer Network, slaví 20 let. V říjnu 2004 byl ukončen provoz serveru Netscape DevEdge, který byl hlavním zdrojem dokumentace k webovým prohlížečům Netscape a k webovým technologiím obecně. Mozille se po jednáních s AOL povedlo dokumenty z Netscape DevEdge zachránit a 23. července 2005 byl spuštěn MDC (Mozilla Developer Center). Ten byl v roce 2010 přejmenován na MDN.
Wayback byl vydán ve verzi 0.1. Wayback je "tak akorát Waylandu, aby fungoval Xwayland". Jedná se o kompatibilní vrstvu umožňující běh plnohodnotných X11 desktopových prostředí s využitím komponent z Waylandu. Cílem je nakonec nahradit klasický server X.Org, a tím snížit zátěž údržby aplikací X11.
Byla vydána nová verze 6.18 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Nově se lze k síti Tor připojit pomocí mostu WebTunnel. Tor Browser byl povýšen na verzi 14.5.5. Thunderbird na verzi 128.12.0. Další změny v příslušném seznamu.
Meta představila prototyp náramku, který snímá elektrickou aktivity svalů (povrchová elektromyografie, EMG) a umožňuje jemnými gesty ruky a prstů ovládat počítač nebo různá zařízení. Získané datové sady emg2qwerty a emg2pose jsou open source.
Byla vydána (𝕏) nová verze 25.7 open source firewallové a routovací platformy OPNsense (Wikipedie). Jedná se o fork pfSense postavený na FreeBSD. Kódový název OPNsense 25.7 je Visionary Viper. Přehled novinek v příspěvku na fóru.
$touch Ahoj\ svete.
. Nebo pokud mas v adresar soubory "a", "a a", "a b". Pri doplnovani se doplni pouze na a. Mezeru je opet treba zadat escapovane. Zkuste si to je to dobre videt.
Proste mezera je v cli peknej opruz.
#!/bin/bash if [ $# -eq 0 ];then echo "Usage: $0 directory ..." else while [ $# -gt 0 ];do if [ -d "$1" ];then find "$1" -mindepth 1 -maxdepth 1 | while read name;do nname="$( echo "$name" | tr 'ĄąÁÂĂÄáâăäĆÇČćçčĎĐďđÉĘËĚéęëěÍÎíłľĹĺŃŇńňÓÔŐÖóôőöŔŕŘřŚŠŞśšşŤťŢţŮÚŰÜůúűüÝýŹŽŻźžż' 'AaAAAAaaaaCCCcccDDddEEEEeeeeIIiiLLllLlNNnnOOOOooooRrRrSSSsssTtTtUUUUuuuuYyZZZzzztszTSZ' | tr 'A-Z' 'a-z' | tr -cs '-0-9a-z_.' '_' | tr -s '-_' '-_' | sed 's/^[-_]\+//;s/[-_]*-[-_]*/-/g;s/[-_]\+\.\/./g;s/\.[-_]\+/./g;' )" if [ "$name" != "$nname" ];then mv -v "$name" "$nname";fi find "$1" -mindepth 1 -maxdepth 1 -type d -print0 | xargs -0r "$0" done shift else echo "Directory $1 does not exist" fi done fi
#!/usr/bin/perl if (scalar(@ARGV)==0) { print "Usage: $0 directory ...\n"; } else { @dirs=@ARGV; while ($dir=shift @dirs) { if (-d $dir) { if (opendir D,"$dir") { @names=readdir D; closedir D; for ($i=0;$i<scalar(@names);$i++) { push @dirs,"$dir/$names[$i]" if (-d "$dir/$names[$i]); $nname=$names[$i]; $nname=~tr/ĄąÁÂĂÄáâăäĆÇČćçčĎĐďđÉĘËĚéęëěÍÎíłľĹĺŃŇńňÓÔŐÖóôőöŔŕŘřŚŠŞśšşŤťŢţŮÚŰÜůúűüÝýŹŽŻźžż\x9D\x9A\x9E\x8D\x8A\x8E/AaAAAAaaaaCCCcccDDddEEEEeeeeIIiiLLllLlNNnnOOOOooooRrRrSSSsssTtTtUUUUuuuuYyZZZzzztszTSZ/; $nname=~tr/A-Z/a-z/; $nname=~tr/-0-9a-z_./_/cs; $nname=~tr/-_/-_/s; $nname=~s/^[-_]+//; $nname=~s/[-_]*-[-_]*/_/g; $nname=~s/[-_]+\././g; $nname=~s/\.[-_]+/./g; if ($nname ne $names[$i]) { print STDERR "Error in rename: $!\n" unless rename "$dir/$names[$i]","$dir/$nname"; } } } else { print STDERR "Unable to open directory $dir: $!\n"; } } else { print STDERR "Directory $dir does not exist\n"; } } }P.S.: Jeste ze fungujou tagy pre, znacky code fungujou nejak podivne a po prvni prazdne radce se asi sami vypnou.
K tomu bashu: cely ten brutal riadok by siel spravit jednym sedom, a usetrit 10 procesov spustanych pre kazdy subor, co by bolo sakra poznat, pri premenovavani velkeho stromu suborov.Jojo, to mas recht. V tomhle pohledu bude urcite ten perl i ten python privetivejsi. Jinak ten "y" (alias tr) v sedu by se pouzit uricte dal, zalezi jaky akceptuje parametry, ale pokud by umoznoval "c" (complement) a "s" (squeeze-repeats), a kdyby sed bral sekvence \x9D, tak by ten radek mohl snad vypadat nejak takhle
nname="$( echo "$name" | sed 'y/ĄąÁÂĂÄáâăäĆÇČćçčĎĐďđÉĘËĚéęëěÍÎíłľĹĺŃŇńňÓÔŐÖóôőöŔŕŘřŚŠŞśšşŤťŢţŮÚŰÜůúűüÝýŹŽŻźžż\x9D\x9A\x9E\x8D\x8A\x8E/AaAAAAaaaaCCCcccDDddEEEEeeeeIIiiLLllLlNNnnOOOOooooRrRrSSSsssTtTtUUUUuuuuYyZZZzzztszTSZ/;y/A-Z/a-z/;y/-0-9a-z_./_/cs;y/-_/-_/s;s/^[-_]\+//;s/[-_]*-[-_]*/-/g;s/[-_]\+\.\/./g;s/\.[-_]\+/./g;' )"Tak ted jsem to overoval a zda se, ze muj sed (GNU sed version 4.1.5) umi \x9D, ale bohuzel neumi y/// s ruznyma dylkama a navic tudiz nelze zapsat nahrazeni complement seznamu a navic y/// nebere parametry, cili selhava prikaz
y/-0-9a-z_./_/cs"strings for `y' command are different lengths" a po smazani pak selhava i
y/-_/-_/s;"extra characters after command". Takze na jednoduchy zmeny to y/// v sedu staci, na slozitejsi je lepsi perl nebo tr.
Na druhej strane, to rekurentne volanie sa mi fakt paci a asi ho tiez zacnem pouzivatKazdej den se neco novyho ucime
y/-0-9a-z_./_/csby slo spravit prikazom (pri ERE, ale to je jedno, je to iba kvoli nazornosti)
s/[^-0-9a-z_.]+/_/ga
y/-_/-_/sby slo spravit cez
s/([-_])\1*/\1/g(BTW prikaz
tr -s '-_' '-_'
mi nefacha a musim pouzit tr -s -- '-_' '-_'
ale moze to byt verziou tr)
cmp1(renamer, u'ůěščřžýáíé', u'uescrzyaie') cmp1(renamer, u'úďťňó', u'udtno') cmp1(renamer, u'ĚŠČŘŽÝÁÍÉ', u'ESCRZYAIE') cmp1(renamer, u'ÚĎŤŇÓ', u'UDTNO')ad 3) hmmm, nevim, me ten bash i perl skript pripada jednodussi, zadny objekty , proste za sebou par tr a s prikazu s jednoduchou syntaxi ad 4) hmmm, pravda, python jsem na woknech nezkousel, ale perl na woknech urcite funguje a bash taky (at uz pod celym cygwinem, nebo pouze s vybrakovanym cygwin DLL a prislusnyma balickama, nebo taky jako v projektu gnuwin32.sf.net) Ale jeste jsem ted mrknul na tu tridu a celkove objektovej navrh a rekl bych, ze by bylo lepsi, kdybys tu tridu udelal jako podtridu tridy String (napr. UntidyFileName) a v ni definoval metodu cleanName a pak to volala jako newname=oldname.cleanName. Protoze volani renamer.cleanName(oldName) je podle me presne ta prasarna, kterou splodi clovek zvyklej na programovani s funkceme, kterej zrovna presel na nejakej jazyk s objektama. A proto se mi taky nelibi Python, protoze self.re_invalid_stuff = re.compile(r"[^a-zA-Z0-9_\.-]+") a self.re_invalid_stuff.sub("_", fileName) nepovazuju za objektovej pristup a cekal bych spis fileName.subst(r"^[-_]+","_"). Jak se to (a) zkratilo, a (b) zprehlednilo, co? Dokud proste bude jazyk kombinovat funkce a operatory s metodama, tak to nebude poradnej OO jazyk (tim samozrejme myslim i Javu, Perl a dalsi pseudo OO jazyky
#!/bin/bash # prejmenovat.sh srcenc=latin2 while [ -n "$1" ] do n="$(iconv -f "$srcenc" -t "ascii//TRANSLIT" <<< "$1" )" mv "$1" "$n" rename 's/ +/_/g;y/A-Z/a-z/' "$n" shift 1 done
find . -depth | xargs prejmenovat.shJoo, je to trošku neefektivní a ty regexpy u rename budou chtít trošku doladit, ale v zásadě by to fungovat mělo... ps: Netestoval jsem to.
NAME rename - Rename files SYNOPSIS rename from to file... DESCRIPTION rename will rename the specified files by replacing the first occurrence of from in their name by to. For example, given the files foo1, ..., foo9, foo10, ..., foo278, the commands rename foo foo0 foo? rename foo foo0 foo?? will turn them into foo001, ..., foo009, foo010, ..., foo278. And rename .htm .html *.htm will fix the extension of your html files.Takze to bude asi ciste na string-to-string konverzi, zadny regulary. Nebo mas jinou verzi? Ja mam "rename from util-linux-2.12r" (kterej manas to do CZ prelozil jako "rename na util-linux-2.12r"???) Jinak tech regexpu ti tam jeste par chybi
document.getElementById("dlcounter").innerHTML = 'Please wait <b>'+x1786+'</b> seconds'a URL na stahovanej soubor se tvori pomoci JS funkci, napr.
document.getElementById("download_html").innerHTML = '<a href="Array" class="downloadhtml" onclick="loadingdownload();">Click here to download</font></a>'; var a = String.fromCharCode(Math.abs(-101)); var d = '5' + String.fromCharCode(Math.sqrt(3249)); document.getElementById("dlbutton").innerHTML = '<a href="http://www41.megaupload.com/files/2a9f31' + d + a + 'afac798acff4e54a6c927d7/ANTOINE DE SAINT-EXUPÉRY - Malý Princ.pdf" onclick="loadingdownload();"><IMG SRC="" WIDTH="165" HEIGHT="39" BORDER="0" ALT="" id="dlimage" onmouseover="dlimg.src=this.src;this.src=dlimgover.src;" onmouseout="this.src=dlimg.src;"></a>';document.getElementById('dlcounter').style.display = 'none';document.getElementById('dlcounterimg').style.display = 'none';document.getElementById('dlimage').src = dlimg.src;Takze jsem na to udelal jednoduchej JS parser a interpret
size="x576" for i in *.jpg *JPG do echo "$i" convert -sample $size $i nahledy/$i doneSam pouzivam v tomto skriptu size="800x800>", coz mi zmensi vsechny obrazky, aby vetsi rozmer nebyl pres 800px.
pic-1.jpg JPEG 2304x1728 2304x1728+0+0 DirectClass 8-bit 902.07kb pic-2.jpg[1] JPEG 1728x2304 1728x2304+0+0 DirectClass 8-bit 1.20726mb 0.360u 0:02 $ convert -verbose pic-1.jpg -resize x600 pic-1-a.jpg pic-1.jpg JPEG 2304x1728 2304x1728+0+0 DirectClass 8-bit 902.07kb pic-1.jpg=>pic-1-a.jpg JPEG 2304x1728=>800x600 800x600+0+0 DirectClass 16-bit 97.8203kb 0.810u 0:02 $ convert -verbose pic-2.jpg -resize x600 pic-2-a.jpg pic-2.jpg JPEG 1728x2304 1728x2304+0+0 DirectClass 8-bit 1.20726mb pic-2.jpg=>pic-2-a.jpg JPEG 1728x2304=>450x600 450x600+0+0 DirectClass 16-bit 102.682kb 0.620u 0:02Je to to, co jsi potreboval?
pisnicka.mp3
a písnička.mp3
?
Jinak pro samotné zbavení se diakritiky se dá použít v příkazové řádce příkaz unaccent (1)
.
#!/bin/bash if [ $# -eq 0 ];then echo "Usage: $0 directory ..." else while [ $# -gt 0 ];do if [ -d "$1" ];then find "$1" -mindepth 1 -maxdepth 1 | while read name;do nname="$( echo "$name" | tr 'ĄąÁÂĂÄáâăäĆÇČćçčĎĐďđÉĘËĚéęëěÍÎíłľĹĺŃŇńňÓÔŐÖóôőöŔŕŘřŚŠŞśšşŤťŢţŮÚŰÜůúűüÝýŹŽŻźžż' 'AaAAAAaaaaCCCcccDDddEEEEeeeeIIiiLLllLlNNnnOOOOooooRrRrSSSsssTtTtUUUUuuuuYyZZZzzztszTSZ' | tr 'A-Z' 'a-z' | tr -cs -- '-0-9a-z_.' '_' | tr -s -- '-_' '-_' | sed 's/^[-_]\+//;s/[-_]*-[-_]*/-/g;s/[-_]\+\.\/./g;s/\.[-_]\+/./g;' )" if [ "$name" != "$nname" ];then if [ -e "$nname" ];then i=0 oname="$nname" while [ -e "$nname" ];do nname="$( printf "%s.%05i" "$oname" $i )";i=$[$i+1];done fi mv -v "$name" "$nname" fi find "$1" -mindepth 1 -maxdepth 1 -type d -print0 | xargs -0r "$0" done shift else echo "Directory $1 does not exist" fi done fi
#!/usr/bin/perl if (scalar(@ARGV)==0) { print "Usage: $0 directory ...\n"; } else { @dirs=@ARGV; while ($dir=shift @dirs) { if (-d $dir) { if (opendir D,"$dir") { @names=readdir D; closedir D; for ($i=0;$i<scalar(@names);$i++) { push @dirs,"$dir/$names[$i]" if (-d "$dir/$names[$i]); $nname=$names[$i]; $nname=~tr/ĄąÁÂĂÄáâăäĆÇČćçčĎĐďđÉĘËĚéęëěÍÎíłľĹĺŃŇńňÓÔŐÖóôőöŔŕŘřŚŠŞśšşŤťŢţŮÚŰÜůúűüÝýŹŽŻźžż\x9D\x9A\x9E\x8D\x8A\x8E/AaAAAAaaaaCCCcccDDddEEEEeeeeIIiiLLllLlNNnnOOOOooooRrRrSSSsssTtTtUUUUuuuuYyZZZzzztszTSZ/; $nname=~tr/A-Z/a-z/; $nname=~tr/-0-9a-z_./_/cs; $nname=~tr/-_/-_/s; $nname=~s/^[-_]+//; $nname=~s/[-_]*-[-_]*/_/g; $nname=~s/[-_]+\././g; $nname=~s/\.[-_]+/./g; if ($nname ne $names[$i]) { if (-e $nname) { $i=0; $oname=$nname; while (-e $nname) { $nname=sprintf("%s.%05i",$oname,$i++); } } print STDERR "Error in rename: $!\n" unless rename "$dir/$names[$i]","$dir/$nname"; } } } else { print STDERR "Unable to open directory $dir: $!\n"; } } else { print STDERR "Directory $dir does not exist\n"; } } }
tr
už zmíněný unaccent
a perl by snad měl umět rozložit akcentovaný znak na kombinující akcent a samotný znak a poté akcenty vyříznout.
Potřeboval jsem to rozjet pod winxp a cygwinem (tr nefungoval). Výsledek vypadá následovně. PS: Je tam opravena chybka viz druhé find. Filtruji .svn adresáře. Změna kalkulace i+1, původní pod bas v cygwin nefungovala. S unaccent viz dále v diskusi by to bylo asi výrazně rychlejší. IFS je asi zbytečné měnit.
#!/bin/bash
srcenc=cp1250
SAVEIFS=$IFS
IFS=$(echo -en "\n\b")
if [ $# -eq 0 ];then
echo "Usage: $0 directory ..."
else
while [ $# -gt 0 ];do
if [ -d "$1" ];then
find "$1" -mindepth 1 -maxdepth 1 -type f | grep -v ".svn" | while read name;do
echo "INFO: Filename - $name"
nname="$(iconv -f "$srcenc" -t "ascii//TRANSLIT" <<< "$name" )"
nname="$(echo "$nname" | sed -e "s/'//g" )"
if [ "$name" != "$nname" ];then
if [ -e "$nname" ];then
echo "WARNING: Filename already exist - $nname"
i=0
oname="$nname"
while [ -e "$nname" ];do nname="$( printf "%s.%05i" "$oname" $i )";i=$(($i+1));done
fi
svn rename "$name" "$nname"
fi
done
find "$1" -mindepth 1 -maxdepth 1 -type d -print0 | xargs -0r "$0" | sed -e "s:[-a-zA-Z0-9_/. \]*.svn ::g"
shift
else
echo "Directory $1 does not exist"
fi
done
fi
# restore $IFS
IFS=$SAVEIFS
Cannot rename: ./spole�ensk� 48.txt , exceptions.UnicodeDecodeErrorNavic mi unika, jak dosahnout vycisteni podadresaru a jak pustit skript na jiny adresar, nez ve kterem je .py umisten.
Readonly directory: ././Smaž mnei kdyz jsou volna prava pro vsechny. Stejne dopadne spusteni scriptu pod rootem, to uz nechapu, zrejme nebude chyba v pravech adresare.
drwxrwxrwx 2 dan dan 4,0K 2007-12-03 18:03 Smaž mneDiky za pomoc.
pri zpracovani zahlasiJsi prvni, kdo tu chybu opravdu zaznamenal (vsichni diskutuji, ale nikdo si to nevyzkousi). Ja jsem ji nasel az po zverejneni clanku a uz jsem ji tam opravil. Na konci clanku jsem zalozil seznam chyb, aby slo sledovat zmeny. Zkusim se podivat, kde vlastne pada ta konverze a co s tim, ale neslibuji, ze to bude hned.Readonly directory: ././Smaž mnei kdyz jsou volna prava pro vsechny.
vycisti.py -c cp1250a melo by to spravne prejmenovat, mne to funguje, a to mam nejspis identicky system. Zkopiruj si stavajici verzi, predtim tam bylo vic chyb. Obecne se da rict, ze pokud mas adresar, u ktereho jsi si jisty, ze je tam blbe (asi windows) kodovani, tak spust skript nejdriv tak, jak jsem uvedl vyse. Jsou totiz znaky, ktere se daji nejakou nahodou prevest do unicode, ale skript je nakonec zrusi a nahradi podtrzitkem (vysledek by treba mohl byt 'spole_ensk_kronika_48.txt'), takze bys pak musel jeste rucne nahrazovat podtrzitka.
Tiskni
Sdílej: