Domaine public 🅭

CMS minimal
ecrit avec VI

[ /  ^ < ]

data

pluriel de datum = donnée en latin

sauvegardes
menage
forensique
bases_de_donnees
j-pilot
graphes
macro processeur malconnu      09/01/2022
vi et plus      11/10/2021
ocr       17/10/2022
virer les metadata      26/06/2023
recupere la date      05/01/2024
divers       26/06/2023

m4

alors qu'il est installé sur TOUT les linux http://www.gnu.org/software/m4 surprenant et addictif les fins de lignes, espaces ou cotes sont traitées comme n'importe quel caractère séparateur de champs "," (virgule /!\ les espaces qui suivent sont ignorées) seule protection (optonelle) `.....' ( accent grave ..... simple quote ) pour éviter de tapper plusieurs fois la même chose définir une macro: define(toto,sdfqsdfqsdfqsdfqsdfqsdfq) une macro doit commencer par une lettre et n'est pas reconnue si collée à un caractère ifdef(`toto',toto,macro toto inconnue) obligation de proteger le premier toto les noms de macros doivent commencer par une lettre syscmd(commande shell) sysval code retour du dernier syscmd() ifelse(sysval, 0, OK,NOK) # avec un seul parametre eq commentaire pour que le retour de la commande soit traité il faut utiliser esyscmd la commande `m4exit' doit être protégé sinon elle sort même dans une définition ou une partie négative d'un test

outre l'éditeur de texte frugal et puissant, deux extention interessantes:
vimdiff
vimdot

# OCR issu d'un programme HP libéré en 2005 après la bataille
# il faut obligatoirement indiquer un nom de fichier destination
# auquel sera ajouté .txt
tesseract -l fra   fichier_image.png    nom_texte

# virer les metadata
mat2 (dans les dépots) copy par exemple fichier.png en fichier.cleaned.png.

DP="$(exif -t 0x0132  fichier_photo.jpg | awk '$1 == "Value:" {print $2 "_" $3}' | tr : - | cut -c-12)"
test "$DP" && touch -t $DP fichier_photo.jpg

/*
 * tentative de fusionner deux version d'un même fichier en cours de chargement par exemple via torrent
 * en remplaçant les "zeros binaires" du premier par l'octet à la même place du second
 * il manque la vérification de l'égalité des octets non nuls
 */
#include <stdio.h>
int main(argc,argv)
int argc;
char *argv[];
{
FILE *f,*g;
int c,d;

if (argc < 3)
	printf("il faut deux fichiers en arguments\n");
else	{
	f=fopen(argv[1],"r"); g=fopen(argv[2],"r");
	while ((c=getc(f)) != EOF && (d=getc(g)) != EOF)
		if (c != 0) putchar(c); else putchar(d);
	fclose(f); fclose(g);
	}
}



#! /bin/bash # pour passer les filtres remplace l'alphabet ASCII par des caractère semblables # la commande tr ne fonctionne pas for i in $*; do test -f "$i" || exec echo "$0 : $i n'est pas un fichier"; done cat $* | sed \ -e 's/A/A/g' \ -e 's/B/B/g' \ -e 's/C/C/g' \ -e 's/D/D/g' \ -e 's/E/E/g' \ -e 's/F/F/g' \ -e 's/G/G/g' \ -e 's/H/H/g' \ -e 's/I/I/g' \ -e 's/J/J/g' \ -e 's/K/K/g' \ -e 's/L/L/g' \ -e 's/M/M/g' \ -e 's/N/N/g' \ -e 's/O/O/g' \ -e 's/P/P/g' \ -e 's/Q/Q/g' \ -e 's/R/R/g' \ -e 's/S/S/g' \ -e 's/T/T/g' \ -e 's/U/U/g' \ -e 's/V/V/g' \ -e 's/W/W/g' \ -e 's/X/X/g' \ -e 's/Y/Y/g' \ -e 's/Z/Z/g' \ -e 's/a/a/g' \ -e 's/b/b/g' \ -e 's/c/c/g' \ -e 's/d/d/g' \ -e 's/e/e/g' \ -e 's/f/f/g' \ -e 's/g/g/g' \ -e 's/h/h/g' \ -e 's/i/i/g' \ -e 's/j/j/g' \ -e 's/k/k/g' \ -e 's/l/l/g' \ -e 's/m/m/g' \ -e 's/n/n/g' \ -e 's/o/o/g' \ -e 's/p/p/g' \ -e 's/q/q/g' \ -e 's/r/r/g' \ -e 's/s/s/g' \ -e 's/t/t/g' \ -e 's/u/u/g' \ -e 's/v/v/g' \ -e 's/w/w/g' \ -e 's/x/x/g' \ -e 's/y/y/g' \ -e 's/z/z/g'

ƒraηcois✉memoρersο.ƒr