Wayback byl vydán ve verzi 0.3. 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 verze 4.0.0 programovacího jazyka Ruby (Wikipedie). S Ruby Box a ZJIT. Ruby lze vyzkoušet na webové stránce TryRuby. U příležitosti 30. narozenin, první veřejná verze Ruby 0.95 byla oznámena 21. prosince 1995, proběhl redesign webových stránek.
Všem čtenářkám a čtenářům AbcLinuxu krásné Vánoce.
Byla vydána nová verze 7.0 linuxové distribuce Parrot OS (Wikipedie). S kódovým názvem Echo. Jedná se o linuxovou distribuci založenou na Debianu a zaměřenou na penetrační testování, digitální forenzní analýzu, reverzní inženýrství, hacking, anonymitu nebo kryptografii. Přehled novinek v příspěvku na blogu.
Vývojáři postmarketOS vydali verzi 25.12 tohoto před osmi lety představeného operačního systému pro chytré telefony vycházejícího z optimalizovaného a nakonfigurovaného Alpine Linuxu s vlastními balíčky. Přehled novinek v příspěvku na blogu. Na výběr jsou 4 uživatelská rozhraní: GNOME Shell on Mobile, KDE Plasma Mobile, Phosh a Sxmo.
Byla vydána nová verze 0.41.0 multimediálního přehrávače mpv (Wikipedie) vycházejícího z přehrávačů MPlayer a mplayer2. Přehled novinek, změn a oprav na GitHubu. Požadován je FFmpeg 6.1 nebo novější a také libplacebo 6.338.2 nebo novější.
Byla vydána nová verze 5.5 (novinky) skriptovacího jazyka Lua (Wikipedie). Po pěti a půl letech od vydání verze 5.4.
Byla vydána nová verze 5.4.0 programu na úpravu digitálních fotografií darktable (Wikipedie). Z novinek lze vypíchnout vylepšenou podporu Waylandu. Nejnovější darktable by měl na Waylandu fungovat stejně dobře jako na X11.
Byla vydána beta verze Linux Mintu 22.3 s kódovým jménem Zena. Podrobnosti v přehledu novinek a poznámkách k vydání. Vypíchnout lze, že nástroj Systémová hlášení (System Reports) získal mnoho nových funkcí a byl přejmenován na Informace o systému (System Information). Linux Mint 22.3 bude podporován do roku 2029.
GNU Project Debugger aneb GDB byl vydán ve verzi 17.1. Podrobný přehled novinek v souboru NEWS.
PRINT "Hledani shody ve dvou souborech"
INPUT "Kolik bytu? ", delka
INPUT "1. soubor: ", soubor1$
INPUT "2. soubor: ", soubor2$
PRINT "Preruseni: Esc"
a$ = " "
b$ = " "
OPEN soubor1$ FOR BINARY AS #1
OPEN soubor2$ FOR BINARY AS #2
FOR i = 1 TO LOF(1) - delka + 1
FOR j = 1 TO LOF(2) - delka + 1
IF INKEY$ = CHR$(27) THEN GOTO konec
GET #1, i, a$
GET #2, j, b$
IF a$ = b$ THEN
pocet = 1
FOR k = 1 TO delka - 1
GET #1, i + k, a$
GET #2, j + k, b$
IF a$ = b$ THEN
pocet = pocet + 1
ELSE
k = delka
END IF
NEXT k
IF pocet = delka THEN
PRINT i, j,
FOR k = 0 TO delka - 1
GET #1, i + k, a$
PRINT a$;
NEXT k
PRINT
END IF
END IF
NEXT j
NEXT i
CLOSE #2
CLOSE #1
konec: END
A nebo ze stovek jiných míst na netu.
#include <stdio.h>
#include <stdlib.h>
int lof(FILE *soubor)
{
fseek(soubor,0,SEEK_END);
return ftell(soubor);
}
void nacti(FILE *soubor,char *text,int pocet)
{
int i;
rewind(soubor);
for (i=0;i<pocet;++i)
text[i]=fgetc(soubor);
text[i]='\0';
}
int main(void)
{
int i,j,c1,c2,f=0,shoda,delka,v1,v2,velikost1,velikost2;
char nazev1[200],nazev2[200],*text1,*text2;
FILE *soubor1,*soubor2;
/* vstupni dialog */
fprintf(stderr,"Hledani shody ve dvou binarnich souborech\n");
fprintf(stderr,"Kolik bytu? ");
scanf("%d",&delka);
if (delka>0)
{
fprintf(stderr,"1. soubor: ");
scanf("%s",nazev1);
fprintf(stderr,"2. soubor: ");
scanf("%s",nazev2);
if ((soubor1=fopen(nazev1,"r")))
{
if ((velikost1=lof(soubor1)))
{
if ((soubor2=fopen(nazev2,"r")))
{
if ((velikost2=lof(soubor2)))
{
printf("\n%s\n\t%s\n",nazev1,nazev2);
/* alokace pameti */
text1=malloc(velikost1+1);
text2=malloc(velikost2+1);
v1=velikost1-delka+1;
v2=velikost2-delka+1;
if (!text1 || !text2)
{
fprintf(stderr,"Nedostatek pameti, pomale hledani!\n\a");
/* primo na disku */
for (rewind(soubor1),i=0;i<v1;++i)
{
c1=fgetc(soubor1);
for (rewind(soubor2),j=0;j<v2;++j)
{
c2=fgetc(soubor2);
if (c1==c2)
{
for (shoda=0;c1==c2 && shoda<delka;++shoda)
{
c1=fgetc(soubor1);
c2=fgetc(soubor2);
}
if (shoda==delka)
{
++f;
fseek(soubor1,i,0);
printf("%d\t%d\t",i,j);
for (shoda=0;shoda<delka;++shoda)
putchar(fgetc(soubor1));
putchar('\n');
}
fseek(soubor1,i+1,0);
fseek(soubor2,j+1,0);
}
}
}
}
else
{
/* nacteni do pameti */
nacti(soubor1,text1,velikost1);
nacti(soubor2,text2,velikost2);
for (i=0;i<v1;++i)
for (j=0;j<v2;++j)
{
for (shoda=0;text1[i+shoda]==text2[j+shoda] && shoda<delka;++shoda);
if (shoda==delka)
{
++f;
printf("%d\t%d\t",i,j);
for (shoda=0;shoda<delka;++shoda)
putchar(text1[i+shoda]);
putchar('\n');
}
}
}
if (text1)
free(text1);
if (text2)
free(text2);
if (f)
printf("Nalezeno %d shodnych useku s delkou %d bytu.\n",f,delka);
else
printf("Nenalezena zadna shoda!\n");
}
else
fprintf(stderr,"%s nic neobsahuje!\n\a",nazev2);
fclose(soubor2);
}
else
fprintf(stderr,"%s nelze cist!\n\a",nazev2);
fclose(soubor1);
}
else
fprintf(stderr,"%s nic neobsahuje!\n\a",nazev1);
}
else
fprintf(stderr,"%s nelze cist!\n\a",nazev1);
}
return 0;
}
Výstup do souboru si můžeš klidně přesměrovat pomocí >, chybová hlášení tam nebudou, jen samotné výsledky :)
NELZE CIST!
commons() { # soubor1 (nejlépe ten menší), soubor2, délka
grep -oF -f \
<( strings -n$3 $1 | while read l; do for ((i=0;i<${#l}-${#l}%$3;i++)); do echo ${l:i:$3}; done; done ) \
<(strings -n$3 $2) | strings -n$3 | sort -u
}
použití:
$ commons /bin/grep /bin/bash 77
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
strings o parametr -eS a aby fungoval grep, rourou převést na utf8 nebo nastavit proměnnou LANG=C, potom bude grep porovnávat binárně.
Podobně pokud je hledaný řetězec v souborech kódován v 16 nebo 32 bitech, viz man 1 strings.
A tvoje zadarmo si strc za klobuk,uz len tento pojem svedci o tom,v akych intenciach rozmyslas.Opak je pravdou.
enca). To je neocenitelné např. při analýze binárních souborů vytvořených windows aplikacemi, ty běžně používají různá kódování i znakové sady. Tam by porovnávání bajt po bajtu bylo k ničemu.
Tiskni
Sdílej: