Advent of code - in awk

Contexte Calendrier de l’avent https://adventofcode.com/2022/ Mes réponses Day 1 Jeu 1 BEGIN {i=1} {if ($1 == "") {print i " " S ; S=0 ; i++} else {S+=$1} } END {print i " " S} puis ($2 > n) {n=$2} END {print n} Jeu 2 BEGIN {i=1} {if ($1 == "") {print S ; S=0 ; i++} else {S+=$1} } END {print S} awk -f 01_02_01_list 01_in.txt | sort -n -r | head -3 | awk '{S+=$1} END {print S}' Day 2 Jeu 1 { # score suivant la réponse if ($2 == "X") {resp=1 ; S+=resp} if ($2 == "Y") {resp=2 ; S+=resp} if ($2 == "Z") {resp=3 ; S+=resp} # score suivant le gagnant ## identique if ( ($1 == "A" && $2 == "X") || ($1 == "B" && $2 == "Y") || ($1 == "C" && $2 == "Z")) {point=3 ; S+=point} ## win if ( ($1 == "C" && $2 == "X") || ($1 == "A" && $2 == "Y") || ($1 == "B" && $2 == "Z")) {point=6 ; S+=point} } END {print S} Jeu 2 { # score suivant le coup ## si null donc coup identique if ($2 == "Y" && $1 == "A") {coup=1 ; S+=coup+3} if ($2 == "Y" && $1 == "B") {coup=2 ; S+=coup+3} if ($2 == "Y" && $1 == "C") {coup=3 ; S+=coup+3} ## si gagnant if ($2 == "Z" && $1 == "A") {coup=2 ; S+=coup+6} # mon coup est un paper if ($2 == "Z" && $1 == "B") {coup=3 ; S+=coup+6} # mon coup est un scissor if ($2 == "Z" && $1 == "C") {coup=1 ; S+=coup+6} # mon coup est un rock ## si perdant if ($2 == "X" && $1 == "A") {coup=3 ; S+=coup} # mon coup est un scissor if ($2 == "X" && $1 == "B") {coup=1 ; S+=coup} # mon coup est un rock if ($2 == "X" && $1 == "C") {coup=2 ; S+=coup} # mon coup est un paper } END {print S} Day 3 Jeu 1 BEGIN { low="abcdefghijklmnopqrstuvwxyz" ; upp="ABCDEFGHIJKLMNOPQRSTUVWXYZ"} { part1=substr($1,1,length($1)/2) part2=substr($1,length($1)/2 + 1,length($1)) split(part1, arr, "") for (i in arr) { if (match(part2, arr[i])) { carcom=arr[i] break } } {if (index(low, carcom) == 0 ) {S+= 26 + index(upp, carcom)} else {S+= ind = index(low, carcom)}}; } END {print S} Day 4 Jeu 1 { # splitter les caracteres ; initialisation ; reconstruire la chaine de chiffres split($1, sec1, "-") split($2, sec2, "-") # test si la chaine 1 est dans la chaine 2 ou inversement if ( ( sec1[1] >= sec2[1] && sec1[2] <= sec2[2] ) || sec2[1] >= sec1[1] && sec2[2] <= sec1[2] ) {S+=1} } END {print S} Lancer en modifiant le séparateur []

Les commandes FFMPEG

pour bidouiller des vidéos

Couper une vidéo Couper le début avec -ss ffmpeg -i input.mp4 -ss 00:00:30 output.mp4 Couper la fin avec -t : mettre le temps de la vidéo ffmpeg -i input.mp4 -t 00:01:20 output.mp4 définir début et temps : ffmpeg -i input.mp4 -ss 00:00:30 -t 00:01:20 output.mp4 Convertir scale ffmpeg -i input.mp4 -vf scale=720:-1 output.mp4 Concaténer Créer une liste des vidéos files. []

NotePad ++ - Utilisation en mission

Remplacer colonne par liste entre quote

Départ
text1
text2
text3
Arrivée
‘text1’, ‘text2’,‘text3’
        <Macro name="SQL - n ligne 1 ligne" Ctrl="no" Alt="no" Shift="no" Key="0">
            <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
            <Action type="3" message="1601" wParam="0" lParam="0" sParam="^" />
            <Action type="3" message="1625" wParam="0" lParam="2" sParam="" />
            <Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;" />
            <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
            <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
            <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
            <Action type="3" message="1601" wParam="0" lParam="0" sParam="$" />
            <Action type="3" message="1625" wParam="0" lParam="2" sParam="" />
            <Action type="3" message="1602" wParam="0" lParam="0" sParam="&apos;," />
            <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
            <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
            <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
            <Action type="3" message="1601" wParam="0" lParam="0" sParam="\r\n" />
            <Action type="3" message="1625" wParam="0" lParam="2" sParam="" />
            <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
            <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
            <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
            <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
            <Action type="3" message="1601" wParam="0" lParam="0" sParam=",$" />
            <Action type="3" message="1625" wParam="0" lParam="2" sParam="" />
            <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
            <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
            <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
        </Macro>

A partir iddsn, mettre sc+numéro

        <Macro name="sc" Ctrl="no" Alt="yes" Shift="no" Key="88">
            <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
            <Action type="3" message="1601" wParam="0" lParam="0" sParam="^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" />
            <Action type="3" message="1625" wParam="0" lParam="2" sParam="" />
            <Action type="3" message="1602" wParam="0" lParam="0" sParam="sc" />
            <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
            <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
            <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
            <Action type="3" message="1601" wParam="0" lParam="0" sParam="[0-9]-[0-9][0-9][0-9][0-9][0-9]-xxxxx-[0-9][0-9]-[0-9:]+$" />
            <Action type="3" message="1625" wParam="0" lParam="2" sParam="" />
            <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
            <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
            <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
        </Macro>

A partir iddsn, mettre sc+US+numéro

        <Macro name="scUS" Ctrl="no" Alt="yes" Shift="yes" Key="88">
            <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
            <Action type="3" message="1601" wParam="0" lParam="0" sParam="(^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9])" />
            <Action type="3" message="1625" wParam="0" lParam="2" sParam="" />
            <Action type="3" message="1602" wParam="0" lParam="0" sParam="\1_" />
            <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
            <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
            <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
            <Action type="3" message="1601" wParam="0" lParam="0" sParam="^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]" />
            <Action type="3" message="1625" wParam="0" lParam="2" sParam="" />
            <Action type="3" message="1602" wParam="0" lParam="0" sParam="sc" />
            <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
            <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
            <Action type="3" message="1700" wParam="0" lParam="0" sParam="" />
            <Action type="3" message="1601" wParam="0" lParam="0" sParam="[0-9]-[0-9][0-9][0-9][0-9][0-9]-xxxxx-[0-9][0-9]-[0-9:]+$" />
            <Action type="3" message="1625" wParam="0" lParam="2" sParam="" />
            <Action type="3" message="1602" wParam="0" lParam="0" sParam="" />
            <Action type="3" message="1702" wParam="0" lParam="768" sParam="" />
            <Action type="3" message="1701" wParam="0" lParam="1609" sParam="" />
        </Macro>

titre

Utiliser un bot Télégram

Créer un bot telegram Ouvrir telegram sur pc Chercher botFather Créer bot Conserver le token Cliquer sur le lien pour ouvrir la conversation avec son bot Récupérer id Aller sur la page en remplaçant {TOEKN} : https://api.telegram.org/bot{TOKEN}/getUpdates Récupérer notamment le CHATID Envoyer message avec le navigateur Taper simplement l’url : https://api.telegram.org/bot{TOKEN}/sendMessage?chat_id={CHAT_ID}text=Hello&World en shell Créer un fichier function. la commande “>/dev/null” permet de ne pas recevoir le retour (on peut enlever pour recevoir le retour telegram) #! []

Le Power Query

dans Excel, via l'éditeur de script

Remarques Remarque : nom colonne sensible à la case mettre une ‘,’ à la fin de chaque instruction sauf la dernière ligne On reprend à chaque ligne le tableau précédent ; sauf si on veut créer plusieurs tableaux La source à partir d’un tableau Créer d’abord un tableau dans la feuille (Insertion -> Tableau) et le nommer “MonTab” let Source = Excel.CurrentWorkbook(){[Name="MonTab"]}[Content] in Source Modification des types let Source = Excel. []

Installer FFMPEG

pour bidouiller des vidéos

Installation

Sur linux MINT

Utiliser la commande (source) :

sudo apt install ffmpeg

Windows

  • Télécharger ffmpeg sur le site
  • dézipper
  • Prendre le ffmpeg.exe et mettre dans le répertoire où il y a la vidéo
  • Ouvrir un terminal
  • cd le répertoire de travail

Pour voir les informations :

ffmpeg -i video.mp4

NotePad ++

... l'indispensable

Rechercher / Remplacer Mode étendue ^ : l’accent circonflexe désigne le début d’une ligne. $ : le dollar désigne la fin d’une ligne. ^.: désigne “n’importe quel caractère en début de ligne”. Source : nliautaud Rechercher Remplacer Signification ^ A Ajoute en début de ligne la lettre A $ Z Ajoute en fin de ligne la lettre Z \r\n Enlève sauts de lignes => txt 1 ligne ^. []

La commande en windows

...et oui winbouze

Se balader dans les répertoire Utiliser dir pour lister les éléments du répertoire courant Pour enregistrer dans un fichier texte, mettre : cd Documents dir > liste_fichiers.txt echo Liste des fichiers creee cd : changer de répertoire dir : lister les éléments echo : à marquer dans le terminal. Créer un fichier On peut créer un *.bat et en double cliquant dessus ça lance la commande. @echo off dir > liste_fichiers. []

Excel

Formule Divers Formule Définition SI(plage;"*TEXT*") Utiliser * signifie que je ne cherche pas un text exact Calculs automatiques ou pas : il faut aller dans le menu « Formule », Option de Calcul et pas cocher « Manuel ». Pour rafraichir, appuyer sur F9. Compter Formule Définition NB.SI($A$1:$A$8;A1) Nombre dans une liste NB. []