Open source reimplementace počítačových her Tomb Raider I a Tomb Raider II spolu s dalšími vylepšeními a opravami chyb TRX byla vydána ve verzi 1.0. Jedná se o sloučení projektů / enginů TR1X a TR2X do jednoho TRX. Videoukázka na YouTube.
Společnost Seznam.cz spouští konverzační nástroj založený na umělé inteligenci Seznam Asistent. Asistent využívá vlastní jazykový model SeLLMa a dočasně i komerční modely od OpenAI provozované v evropských datacentrech prostřednictvím Microsoft Azure. Dlouhodobým cílem Seznamu je provozovat Asistenta výhradně na interních jazykových modelech a ve vlastních datových centrech.
Software LibrePods osvobozuje bezdrátová sluchátka AirPods z ekosystému Applu. Exkluzivní funkce AirPods umožňuje využívat na Androidu a Linuxu. Díky zdokumentování proprietárního protokolu AAP (Apple Accessory Protocol).
Byl vydán AlmaLinux OS 10.1 s kódovým názvem Heliotrope Lion. S podporou Btrfs. Podrobnosti v poznámkách k vydání.
Placená služba prohledávání zprostředkovatelů dat a automatického odstraňování uniklých osobních údajů Mozilla Monitor Plus bude 17. prosince ukončena. Bezplatná monitorovací služba Mozilla Monitor bude i nadále poskytovat okamžitá upozornění a podrobné pokyny k omezení rizik úniku dat. Služba Mozilla Monitor Plus byla představena v únoru loňského roku.
Waydroid (Wikipedie, GitHub) byl vydán v nové verzi 1.6.0. Waydroid umožňuje spouštět aplikace pro Android na běžných linuxových distribucích. Běhové prostředí vychází z LineageOS.
Příspěvek na blogu Raspberry Pi představuje novou kompletně přepracovanou verzi 2.0 aplikace Raspberry Pi Imager (YouTube) pro stažení, nakonfigurování a zapsání obrazu operačního systému pro Raspberry Pi na SD kartu. Z novinek lze vypíchnout volitelnou konfiguraci Raspberry Pi Connect.
Memtest86+ (Wikipedie), svobodný nástroj pro kontrolu operační paměti, byl vydán ve verzi 8.00. Přináší podporu nejnovějších procesorů Intel a AMD nebo také tmavý režim.
Programovací jazyk Racket (Wikipedie), tj. jazyk z rodiny jazyků Lisp a potomek jazyka Scheme, byl vydán v nové major verzi 9.0. Hlavní novinku jsou paralelní vlákna (Parallel Threads).
Před šesti týdny bylo oznámeno, že Qualcomm kupuje Arduino. Minulý týden byly na stránkách Arduina aktualizovány podmínky používání a zásady ochrany osobních údajů. Objevily se obavy, že by otevřená povaha Arduina mohla být ohrožena. Arduino ubezpečuje, že se nic nemění a například omezení reverzního inženýrství v podmínkách používání se týká pouze SaaS cloudové aplikace.
Řešení dotazu:
cd '/zdrojový/adresář'
for dir in {A..B}{1..12}; do
cp "${dir}/assembly.fa" '/cílový/adresář/'"${dir}assembly.fa"
done
Tohle^^^ tedy samozřejmě předpokládá, že jsou všechny ty adresáře v jednom a tom samém společném adresáři. Tady je jednoduchý ilustrativní příklad / test:
mkdir nějaký_pokus cíl
cd nějaký_pokus
mkdir {A..B}{1..12}
touch {A..B}{1..12}/assembly.fa
cd ..
for dir in {A..B}{1..12}; do
cp "nějaký_pokus/${dir}/assembly.fa" "cíl/${dir}assembly.fa"
done
ls -l cíl
rm -Rf nějaký_pokus cíl
Pokud ty adresáře můžou být libovolně vnořené v jiných adresářích, tak třeba takto:
find zdroj -type d -regextype awk -regex '.*[AB](1[0-2]?|[2-9])' \
| while read dir; do
cp "${dir}/assembly.fa" "cíl/$(basename "${dir}")assembly.fa"
done
Opět ukázka s triviálním testem (která sice netestuje hlubší zanoření adresářů, protože jsem extrémně líný, ale mělo by to i s hlubším zanořením fungovat):
mkdir 'zdroj' 'cíl'
mkdir 'zdroj/'{A..B}{1..12}
touch 'zdroj/'{A..B}{1..12}'/assembly.fa'
find zdroj -type d -regextype awk -regex '.*[AB](1[0-2]?|[2-9])' \
| while read dir; do
cp "${dir}/assembly.fa" "cíl/$(basename "${dir}")assembly.fa"
done
ls -l 'cíl'
rm -Rf 'zdroj' 'cíl'
KAM=""; Z=""; find $Z -name "assembly.fa" -exec echo "cp -v '{}' $KAM/\'\`echo {}|tr / _\`\'" \; |bash
A u mna "demo" (pouzil som absolutne cesty, mozes pouzit i relativne):
$ KAM="/tmp/kam"; Z="/tmp/z/"; find $Z -name "assembly.fa" -exec echo "cp -v '{}' $KAM/\'\`echo {}|tr / _\`\'" \; |bash
'/tmp/z/b/assembly.fa' -> "/tmp/kam/'_tmp_z_b_assembly.fa'"
'/tmp/z/a/assembly.fa' -> "/tmp/kam/'_tmp_z_a_assembly.fa'"
$
rename 's/\///' */assembly.fa
echo "nazdar honzo" | sed 's/nazdar/ahoj/'Pokud by se meli zmeni vsechny vyskyty na radku, pridas na konec g: 's/neco/zaneco/g'
To je skript pro sed (stream editor). Úvodní s znamená nahrazení (substitute) a pak následují dva výrazy oddělené (v tomto případě) lomítky, první je regulární výraz a druhý je šablona k nahrazení. Nelze než doporučit manuálové stránky, protože tohle vyžaduje pochopení rour (pipe) a regulárních výrazů.
Ještě bych doplnil, že pro jednoduché případy umí přesně tohle i samotný shell při expanzi proměnných a není tedy nezbytně potřeba další proces.
text='aabbcc'
echo "${text}" # aabbcc
echo "${text/b/z}" # aazbcc
echo "${text//b/z}" # aazzcc
echo "${text/[ac]/z}" # zabbcc
echo "${text/%[ac]/z}" # aabbcz
echo "${text//[ac]/z}" # zzbbzz
Význam jednotlivých znaků je popsaný v man bash, kapitola Expansion / Parameter Expansion.
… shopt -s extglob …
Žádný z mnou uvedených příkladů nevyžaduje extglob, pokud se nepletu. Ten bývá většinou implicitně zapnutý, ale aby ho člověk fakt využil, musel by tam jako pattern zapsat něco z tohoto:
If the extglob shell option is enabled using the shopt builtin, several
extended pattern matching operators are recognized. In the following
description, a pattern-list is a list of one or more patterns separated by
a |. Composite patterns may be formed using one or more of the following
sub-patterns:
?(pattern-list)
Matches zero or one occurrence of the given patterns
*(pattern-list)
Matches zero or more occurrences of the given patterns
+(pattern-list)
Matches one or more occurrences of the given patterns
@(pattern-list)
Matches one of the given patterns
!(pattern-list)
Matches anything except one of the given patterns
On to ale chtěl zkopírovat, zatímco rename všechno přesouvá (jako mv).
Tiskni
Sdílej: