Před 25 lety, ve čtvrtek 29. dubna 1999, byla spuštěna služba "Úschovna".
Byla vydána nová verze 24.04.28 s kódovým názvem Time After Time svobodného multiplatformního video editoru Shotcut (Wikipedie) a nová verze 7.24.0 souvisejícího frameworku MLT Multimedia Framework. Nejnovější Shotcut je vedle zdrojových kódů k dispozici také ve formátech AppImage, Flatpak a Snap.
Byla vydána verze 5.30 dnes již open source operačního systému RISC OS (Wikipedie).
V aktuálním příspěvku na blogu počítačové hry Factorio (Wikipedie) se vývojář s přezývkou raiguard rozepsal o podpoře Linuxu. Rozebírá problémy a výzvy jako přechod linuxových distribucí z X11 na Wayland, dekorace oken na straně klienta a GNOME, změna velikosti okna ve správci oken Sway, …
Rakudo (Wikipedie), tj. překladač programovacího jazyka Raku (Wikipedie), byl vydán ve verzi #171 (2024.04). Programovací jazyk Raku byl dříve znám pod názvem Perl 6.
Společnost Epic Games vydala verzi 5.4 svého proprietárního multiplatformního herního enginu Unreal Engine (Wikipedie). Podrobný přehled novinek v poznámkách k vydání.
Byl vydán Nextcloud Hub 8. Představení novinek tohoto open source cloudového řešení také na YouTube. Vypíchnout lze Nextcloud AI Assistant 2.0.
Vyšlo Pharo 12.0, programovací jazyk a vývojové prostředí s řadou pokročilých vlastností. Krom tradiční nadílky oprav přináší nový systém správy ladících bodů, nový způsob definice tříd, prostor pro objekty, které nemusí procházet GC a mnoho dalšího.
Microsoft zveřejnil na GitHubu zdrojové kódy MS-DOSu 4.0 pod licencí MIT. Ve stejném repozitáři se nacházejí i před lety zveřejněné zdrojové k kódy MS-DOSu 1.25 a 2.0.
Canonical vydal (email, blog, YouTube) Ubuntu 24.04 LTS Noble Numbat. Přehled novinek v poznámkách k vydání a také příspěvcích na blogu: novinky v desktopu a novinky v bezpečnosti. Vydány byly také oficiální deriváty Edubuntu, Kubuntu, Lubuntu, Ubuntu Budgie, Ubuntu Cinnamon, Ubuntu Kylin, Ubuntu MATE, Ubuntu Studio, Ubuntu Unity a Xubuntu. Jedná se o 10. LTS verzi.
Zdravím,
protřebuji poradit s tím, jak mám pomocí programu "rename" přejmenovat
01003 0_KJV_Bible-Genesis001.mp3 01015 0_KJV_Bible-Genesis002.mp3 01022 0_KJV_Bible-Genesis003.mp3
na
kjv_01_gn_01.mp3 kjv_01_gn_02.mp3 kjv_01_gn_03.mp3
Ještě dodám, že v terminálu se stávající názvy souborů zobrazují (zřejmě kvůli mezeře) s "úvozovkami":
'01003 0_KJV_Bible-Genesis001.mp3' '01015 0_KJV_Bible-Genesis002.mp3' '01022 0_KJV_Bible-Genesis003.mp3'
Poraďte prosím.
Řešení dotazu:
Zkusil jsem tohle:
$ touch '01003 0_KJV_Bible-Genesis001.mp3' '01015 0_KJV_Bible-Genesis002.mp3' '01022 0_KJV_Bible-Genesis003.mp3' $ ls -1 '01003 0_KJV_Bible-Genesis001.mp3' '01015 0_KJV_Bible-Genesis002.mp3' '01022 0_KJV_Bible-Genesis003.mp3' $ rename 's/(\d\d).*Genesis0(\d\d)(.*)/kjv_$1_gn_$2$3/' * $ ls -1 kjv_01_gn_01.mp3 kjv_01_gn_02.mp3 kjv_01_gn_03.mp3
Bere to první dvě číslice a pak poslední dvě před příponou.
Ó děkuji. To je přesně ono.
Nějaké soubory jsem přejmenovával už včera. Bylo to ale podstatně jednodušší a tak jsem si vystačil s Googlem. Dnes mi už ale Google nepomohl. Man page je dost stručná a tak nevím, kde si to nastudovat. Když jsem na netu hledal nějaké příklady použití, pořád jsem narážel na zmínky o Perlu. Jedná se tedy o syntaxi Perlu? Pokud víš, poraď prosím něco (web), kde by se to dalo nastudovat. A nejlépe v češtině.
Jsou to regulární výrazy, nějaký článek je třeba tady: Regulární výrazy nebo na Wikibooks: Regular Expressions.
Text v normálních (závorkách) je tzv. skupina – ty jsou číslované od 1 a dá se na ně odkazovat při nahrazování – buď pomocí toho $1
nebo v některých nástrojích \1
. Skupina 0 je pak celý text, který vyhovoval výrazu.
Hranaté [závorky] jsou výčet. * a + je počet opakování předchozího znaku (nebo znaků z hranaté závorky), buď 0..n nebo 1..n. Nebo pomocí {m,n} jde říct počet opakování od/do. Pak se hodně používají ty \d, \s nebo [0-9], [a-z0-9] atd. to už si dohledáš v těch článcích.
Super. Dík
for soubor in *KJV*; do mv "${soubor}" "$(echo ${soubor} | sed 's/.*Genesis0/kjv_01_gn_/')"; done
Ještě mám jednu otázku. Pro změnu malých písmen na velká slouží:
rename 'y/a-z/A-Z/'
Jak to ale použít rekurzivně pro adresář?
cd adresar rename 'y/a-z/A-Z/' *
cd adresar for soubor in *; do mv "${soubor}" "${soubor^^}"; donebash umoznuje obsah promene prevest na velke pridanim ^^ za nazev promene, nebo na male pridanim ,,
$ priklad="RuZnEvElKaPiSmEnA" $ echo ${priklad^^} RUZNEVELKAPISMENA $ echo ${priklad,,} ruznevelkapismena
nebo po vzoru predchozi reakce se smyckou:cd adresar for soubor in *; do mv "${soubor}" "${soubor^^}"; done
Ne. Situace je totožná. Jsem v adresáři "bk". V něm je 66 podadresářů a v každém z nich jsou soubory. Když tedy v tom adresáři bk zadám ten příkaz, tak se změní jen názvy těch podadresářů, ale názvy souborů v nich už ne.
cd hlavniadresar for adresar in *; do cd ${adresar}; for soubor in *; do mv "${soubor}" "${soubor^^}"; done; cd ..; donenebo s tim rename
cd hlavniadresar for adresar in *; do cd ${adresar}; rename 'y/a-z/A-Z/' *; cd ..; donenicmene to uz reseni pres find zacina byt cistejsi/prehlednejsi
Dík za všechno. Zítra se na to podívám.
Tak jsem se k tomu dostal až teď. Zkusil jsem:
cd hlavniadresar for adresar in *; do cd ${adresar}; rename 'y/a-z/A-Z/' *; cd ..; done
A tohle už zafungovalo.
Díky
PS: Tu smyčku chápu. To je fikaný. Akorát nechápu, proč jsi v tom příkazu použil slovo "adresar"?
Místo něj mohlo být libovolné slovo?
Ne k3ďo. Přesně tohle jsem taky zkoušel a výsledek je ten, že se přejmenují jen adresáře v adresáři, kde se nacházím. Ale soubory v nich ne.
Jakýkoli příkaz můžeš pustit nad soubory rekurzivně pomocí:
find -print0 | xargs -0 -n1 echo
Akorát místo echo
dáš svůj příkaz a ono ho to spustí pro každý nalezený soubor s parametrem cesta-k-souboru.
Find umí různě filtrovat, např. -type f
najde jen soubory a vynechá adresáře.
No ten find jsem právě včera používal, ale nevěděl jsem, jak jej do příkazu zakomponovat, aby se to dělo rekurzivně. Každopádně díky. Zítra to zkusím a když tak ještě napíšu.
Tiskni Sdílej: