Byla vydána verze 4.0 multiplatformního integrovaného vývojového prostředí (IDE) pro rychlý vývoj aplikaci (RAD) ve Free Pascalu Lazarus (Wikipedie). Přehled novinek v poznámkách k vydání. Využíván je Free Pascal Compiler (FPC) 3.2.2.
Podpora Windows 10 končí 14. října 2025. Připravovaná kampaň Konec desítek (End of 10) může uživatelům pomoci s přechodem na Linux.
Již tuto středu proběhne 50. Virtuální Bastlírna, tedy dle římského číslování L. Bude L značit velikost, tedy více diskutujících než obvykle, či délku, neboť díky svátku lze diskutovat dlouho do noci? Bude i příští Virtuální Bastlírna virtuální nebo reálná? Nejen to se dozvíte, když dorazíte na diskuzní večer o elektronice, softwaru, ale technice obecně, který si můžete představit jako virtuální posezení u piva spojené s učenou
… více »Český statistický úřad rozšiřuje Statistický geoportál o Datový portál GIS s otevřenými geografickými daty. Ten umožňuje stahování datových sad podle potřeb uživatelů i jejich prohlížení v mapě a přináší nové možnosti v oblasti analýzy a využití statistických dat.
Kevin Lin zkouší využívat chytré brýle Mentra při hraní na piano. Vytváří aplikaci AugmentedChords, pomocí které si do brýlí posílá notový zápis (YouTube). Uvnitř brýlí běží AugmentOS (GitHub), tj. open source operační systém pro chytré brýle.
Jarní konference EurOpen.cz 2025 proběhne 26. až 28. května v Brandýse nad Labem. Věnována je programovacím jazykům, vývoji softwaru a programovacím technikám.
Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.
Před 25 lety zaplavil celý svět virus ILOVEYOU. Virus se šířil e-mailem, jenž nesl přílohu s názvem I Love You. Příjemci, zvědavému, kdo se do něj zamiloval, pak program spuštěný otevřením přílohy načetl z adresáře e-mailové adresy a na ně pak „milostný vzkaz“ poslal dál. Škody vznikaly jak zahlcením e-mailových serverů, tak i druhou činností viru, kterou bylo přemazání souborů uložených v napadeném počítači.
Byla vydána nová major verze 5.0.0 svobodného multiplatformního nástroje BleachBit (GitHub, Wikipedie) určeného především k efektivnímu čištění disku od nepotřebných souborů.
! flora jetel len ! fauna jelen lev ! nebe letadlo jelen tupolev ! dalsi lentilka jelenice jitrnice jetel lev
Řešení dotazu:
uniq seznam.txt
uniq seznam.txt
dá úplně stejný výsledek jako cat seznam.txt
.
$ cat duplitest.txt ! flora jetel len ! fauna jelen lev ! nebe letadlo jelen tupolev ! dalsi lentilka jelenice jitrnice jetel levmi vypíše po
$ uniq -c -w 3 duplitest.txt 1 ! flora 1 jetel 1 len 1 ! fauna 1 jelen 1 lev 1 ! nebe 1 letadlo jelen 1 tupolev 1 ! dalsi 1 lentilka 1 jelenice 1 jitrnice 1 jetel 1 levpřitom by měl vypsat
$ uniq -c -w 3 duplitest.txt 2 jet 2 len 2 jel 2 levalespoň to tak chápu z toho externího příkladu.
Vzhledem k tomu, že to chceš dělat interaktivně, tak to lze udělat např. následovně. Uložíš si všechny duplicitní řádky do souboru duplicate.lines:
$ sort input.txt |uniq -d >duplicate.lines
V oblíbeném textovém editoru smažeš ze souboru duplicate.lines řádky, které nechceš odstranit:
$ vim duplicate.lines
Z původního vstupního souboru odfiltruješ všechny řádky, které jsou v souboru duplicate.lines a výstup uložíš do nového souboru new_input.txt:
$ fgrep -vxf duplicate.lines input.txt >new_input.txt
Našlo mi to řádky
jetel lev
ty jsem odstranil, protože jsem je nechtěl smazat dokud mi nedá výběr který duplikátní řádek se mi smaže, nechci smazat vždy jen první nebo vždy jen druhý, chci vědět který se smaže.
Poslední krok mi vrátil původní soubor.
cut -d " " -f 2-
).
Nu dobrá, tak využij získaný soubor duplicate.lines a ulož si do souboru remove.lines všechny řádky s duplicitami a prefixem, který charakteruzuje číslo řádku ve vstupním souboru.Co když budu mít soubor s tisíci řádky a navíc já se ty duplicity snažím mezi těmi tisíci najít, kdybch věděl které to jsou nepokládal bych zde dotaz. Vážím si ale tvé snahy, jen chybí uvažování jak moc to bude efektivní v souboru s těmi tisíci položkami. Chci říct, že na takový malý soubor je až příliš mnoho interakce
Nu dobrá, tak využij získaný soubor duplicate.lines a ulož si do souboru remove.lines všechny řádky s duplicitami a prefixem, který charakteruzuje číslo řádku ve vstupním souboru.
$ fgrep -nxf duplicate.lines input.txt >remove.lines
Pak si opět v oblíbeném textovém editoru smaž ze souboru remove.lines řádky, které nechceš odstranit a následně využij tento soubor pro smazání konkrétních řádků ze vstupního souboru:
$ sed -e $(cut -f 1 -d ":" remove.list |sed -e 's/$/d;/' |tr -d "\n") input.txt >new_input.txt
Soubor new_input.txt bude obsahovat výsledek.
nahrej to do SQL databáze
S datábazemi nemám zkušenosti, ale předpokládám, že mám k tomu použít LibreOffice Base a pak ale nevím co dál. Co bych měl hledat v nápovědě abych dosáhl toho co mi radíš.
přidej sloupec, který bude značit duplicityDobře nějak vytvořím sloupec ale jak porozumět, že má značit duplicity?
Pokud chceš zachovat pořadí řádků, nahrej to do SQL databázePobavilo.
perl6 -e 'my %rows .= push: lines.pairs.invert; %rows.grep( *.value.elems > 1 )>>.say':)
awk '{print a[$0]++":"$0}' file.txt | tac | awk -v FS=':' '{b[$2]=$1} a[$2]++{b[$2]++} b[$2]==0{b[$2]=""} b[$2]{b[$2]=">:"} {print b[$2]$2}' | tac | awk -v FS=':' '$1==">" && !a[$2]{a[$2]=">"++i">>"} {print $1a[$2]$2}'
| sed 's#>>\([0-9]\)>>\(.*\)#"\\033[1m\\033[4\1m\2\\033[0m"#' | xargs -I {} printf "{}\\n
"
| sed '/^>>[0-9]>>/{ s#>>#\\033[1m\\033[4# ; s#>>#m# ; s#$#\\033[0m#} ' | xargs -0 -I {} printf '%b' "{}"
| xargs -d '\n' -I {} printf '%b' "{}\\n"
(jen prvních 9)Pokud těch prvních devět už nebude mít svůj duplikát, bude obarveno zase dalších devět, je to tak, zkrátka dokud nesmažu alespoň jeden duplikát?
rakudo
. Použil jsem ho jen proto, že v něm experimentuji a napadlo hezké řešení. Napsat to jde v spoustě věcí v Perlu např.
perl -nE 'BEGIN{ my %line; }; chomp; push @{$line{$_}}, $.; END{ for (keys %line) { say $_ . q{: } . join q{, }, @{$line{$_}} if @{$line{$_}} > 1;}; };'ale nevypadá to, tak elegantně jak v Perlu 6 :)
perl6 -e 'my %rows .= push: lines.pairs.invert; %rows.grep( *.value.elems > 1 )>>.say' <<EOF ! flora jetel len ! fauna jelen lev ! nebe letadlo jelen tupolev ! dalsi lentilka jelenice jitrnice jetel lev EOFOutput:
jetel => [1 13] lev => [5 14]Převádí se to do pole tak jsou řádky číslovány od 0. U Perlu 6 zatím drhne rychlost, ale tisíce by ještě měli být v pohodě.
Jakto že to označuje pokaždé něco jiného ?To je nějaké divné ...
pepe@PC-PEPE-LINUX:~$ perl -nE 'BEGIN{ my %line; }; chomp; push @{$line{$_}}, $.; END{ for (keys %line) { say $_ . q{: } . join q{, }, @{$line{$_}} if @{$line{$_}} > 1;}; };' < file.txt lev: 6, 15 jetel: 2, 14 pepe@PC-PEPE-LINUX:~$ perl6 -e 'my %rows .= push: lines.pairs.invert; %rows.grep( *.value.elems > 1 )>>.say' < file.txt jetel => [1 13] lev => [5 14] pepe@PC-PEPE-LINUX:~$ cat file.txt ! flora jetel len ! fauna jelen lev ! nebe letadlo jelen tupolev ! dalsi lentilka jelenice jitrnice jetel lev
2, 14
a podruhé 1, 13
?
To protože jednou to čísluje řádky od 1
a podruhé od 0
. Jak už jsem psal, ten příklad v Perlu 6 přistupuje k tomu souboru jako k seznamu řádků a první index v seznamu je 0
.
Tiskni
Sdílej: