MicP a écrit 428 commentaires

  • # Avec sed

    Posté par  . En réponse au message Ajouter un mot au debut de la ligne sur shell. Évalué à 4. Dernière modification le 13 février 2019 à 17:09.

    sed -ri '1s/(.*)/OScam \1/' nomDuFichierÀmodifier

    NOTE : Histoire de ne pas confondre ce qui est affiché avec un L minuscule,
    c'est le numéro de la ligne (chiffre 1) qui est juste avant le caractère s

  • [^] # Re: celui-ci devrait mieux fonctionner

    Posté par  . En réponse au message bash recuperer nom de plusieurs fichiers incrémentés. Évalué à 1. Dernière modification le 12 février 2019 à 07:37.

    Le contenu de monScript.sh :

    #!/bin/bash
    
    extension="png"                 # Le nom d'extension SANS le point qui la précède
    nomRepert="/nom/du/répertoire"  # …dans lequel se trouvent les fichiers à traiter
    
    tablFichs=( "$nomRepert/"*"$extension" )
    tablFichs=( "${tablFichs[@]##*\/}" )
    
    tmpIFS="$IFS"
    IFS=$'\n'
    maRegex='([0-9]{1,}\.'"$extension"')$'
    tablUniqs=($( \
    for fich in "${tablFichs[@]}"; do
        [[ "$fich" =~ $maRegex ]] && \
            printf "%s\n" "${fich//${BASH_REMATCH[1]}/}"
    done | sort -u
    ))
    
    for debutNom in "${tablUniqs[@]}"; do
        chiffres=""
        maRegex="^$debutNom"'([0-9]{1,})\.'"$extension"
        for fich in "${tablFichs[@]}"; do
            [[ "$fich" =~ $maRegex ]] && \
                chiffres+="${BASH_REMATCH[1]}"$'\n'
        done
        chiffres="$(sort -n <<< $chiffres | tr '\n' ',')"
        printf "%s\n" "$debutNom[${chiffres:1:-1}]"
    done
    IFS="$tmpIFS"

    La liste des noms des fichiers pour le test :

    autrefichier_4.png
    autrefichier_5.png
    avec espace1.png
    avec espace2.png
    avec espace3.png
    fic77.pnget445.png
    fich77a7888.png
    fich77a7.png
    fichier42.png
    un77autre_0.png
    un77autre_3.png
    unautre_055.png
    unautre_155.png
    unautre_50.png
    unautre_56.png

    Le retour du script en fonction de la liste ci-dessus :

    autrefichier_[4,5]
    avec espace[1,2,3]
    fic77.pnget[445]
    fich77a[7,7888]
    fichier[42]
    un77autre_[0,3]
    unautre_[50,055,56,155]
  • [^] # message à supprimer

    Posté par  . En réponse au message bash recuperer nom de plusieurs fichiers incrémentés. Évalué à 1. Dernière modification le 12 février 2019 à 07:24.

    désolé

  • # ou alors…

    Posté par  . En réponse au message bash recuperer nom de plusieurs fichiers incrémentés. Évalué à 1.

    #!/bin/bash
    
    extension=".png"
    nomRepertoire="dossier"
    
    tmpIFS="$IFS"; IFS=$'\n'
    
    tablFichs=( "$nomRepertoire/"*"$extension" )
    tablFichs=( ${tablFichs[@]##*\/} )
    
    maRegex='[0-9][0-9]*'"$extension"'$'
    tablUniqs=($( \
    for fich in "${tablFichs[@]}"; do
        [[ "$fich" =~ ($maRegex) ]] && \
            printf "%s\n" "${fich//${BASH_REMATCH[1]}/}"
    done | sort -u
    ))
    
    for debutNom in "${tablUniqs[@]}"; do
        chiffres=""
        for fich in "${tablFichs[@]}"; do
            [[ "$fich" =~ "$debutNom"(.*) ]] && \
                chiffres+="${BASH_REMATCH[1]//$extension}"
        done
        printf "%s\n" "$nomRepertoire/$debutNom[$chiffres]"
    done
    
    IFS=$tmpIFS
  • # un petit script

    Posté par  . En réponse au message bash recuperer nom de plusieurs fichiers incrémentés. Évalué à 1. Dernière modification le 11 février 2019 à 16:59.

    #!/bin/bash
    
    nomIdentique="toto"                       # La partie identique du nom des fichiers
    maRegex="$nomIdentique([0-9]).png$"       # Pour extraire le chiffre situé juste avant ".png"
    chiffres=""                               # Pour la liste des chiffres qui seront extraits
    
    tablFichs=( dossier/$nomIdentique*.png )  # Mise dans un tableau de la liste
    for fich in "${tablFichs[@]}"; do
        fich="${fich##*\/}"                   # Suppression du nom du chemin   
        [[ "$fich" =~ $maRegex ]] && chiffres="$chiffres${BASH_REMATCH[1]}"
    done
    
    echo "$nomIdentique[$chiffres]"
  • # en téléchargeant d'abord le fichier image :

    Posté par  . En réponse au message essai de script. Évalué à 2.

    curl wttr.in/Oymyakon_tqp0.png                           && \
    convert /home/pi/webcam/viewcam.jpg Oymyakon_tqp0.png       \
    -geometry +50+50 -composite /home/pi/webcam/target4.jpg  && \
    rm Oymyakon_tqp0.png
  • # ou alors, avec un pipe, utiliser xargs

    Posté par  . En réponse au message probleme avec la commande ls | file. Évalué à 3. Dernière modification le 10 février 2019 à 16:46.

    ls | xargs files

    =======
    Voir :

    man xargs
  • # ou bien, en une seule ligne :

    Posté par  . En réponse au message Extraire un lien dans un fichier. Évalué à 2.

    wget -q -O /tmp/monfichiera --trust-server-names "$(awk -F\" '{print $2}' /tmp/monfichier)"
  • # ou alors :

    Posté par  . En réponse au message Télécharger un fichier ipk zip. Évalué à 1. Dernière modification le 04 février 2019 à 13:07.

    #!/bin/sh
    
    leLien="http://www.mediafire.com/file/ke0f3n2u8sqbxsr/Ncam-Images-MIPS-IPK.zip"
    
    wget -q -O /tmp/leFichier.zip                         \
    $(                                                    \
      wget -O- -q "$leLien"                             | \
      sed -n 's|.*href="\(http://download.*\)">|\1|p'     \
    )                                                  && \
    gunzip -c /tmp/leFichier.zip > /tmp/leFichier.ipk  && \
    rm -f /tmp/leFichier.zip                           && \
    cd /                                               && \
    opkg install --force-overwrite /tmp/leFichier.ipk
  • [^] # Re: Pour coloriser…

    Posté par  . En réponse au message Alias avec cible changeante.. Évalué à 2.

    Bonjour

    #!/bin/bash
    
    defFg="\033[0m"
    vert="\033[01;32m"
    jaune="\033[01;33m"
    cyan="\033[01;36m"
    
    while read; do
        [[ $REPLY =~ name   ]] && echo -e "${REPLY%:*}:$vert${REPLY#*:}$defFg"
        [[ $REPLY =~ Width  ]] && echo -e "${REPLY%:*}:$jaune${REPLY#*:}$defFg"
        [[ $REPLY =~ Heigth ]] && echo -e "${REPLY%:*}:$cyan${REPLY#*:}$defFg"
    done <<< $(mediainfo "$@")
  • # …créer un script pour télécharger un fihier ipk …

    Posté par  . En réponse au message Télécharger un fichier ipk zip. Évalué à 3. Dernière modification le 02 février 2019 à 04:13.

    Bonjour

    #!/bin/bash
    
    lienFich="http://download2266.mediafire.com/69b0g3ixp9fg/ke0f3n2u8sqbxsr/"
    nomFich="Ncam-Images-MIPS-IPK.zip"
    
    wget -q --trust-server-names "$lienFich$nomFich" && \
    unzip -qq "$nomFich"                             && \
    rm -f "$nomFich"                                 && \
    opkg install "*.ipk"
    
  • # …c'est comme les bouteilles de gaz, ça tombe en panne quand on en a besoin !…

    Posté par  . En réponse au message Vérifier l'intégrité des sauvegardes. Évalué à 2.

    Pour la bouteille de gaz, il te faut la poser sur un "pèse personne" (environ 10€)

    Pose une bouteille de gaz vide sur le pèse personne et mets à zéro le pèse personne.

    Quand ta bouteille pleine se videra alors qu'elle est posée sur le pèse personne,
    il te suffira de lire le poids de gaz restant pour prévoir de la changer avant la panne.

  • [^] # Re: Finalement peut-être…

    Posté par  . En réponse au message Insérer une variable dans un lien sur shell. Évalué à 1.

    Grrrr!!!!

    J'ai oublié deux caractères.

    Je reprends le message précédent en y apportant la correction :

    nomFichier=`wget -q -O- --trust-server-names "http://dreamosat.net/oscam/index.php?&direction=1&order=nom&directory=1.20_TRUNK/arm_dm900-solo4k" | sed -n '0,/.*downloadfile/s/.*filename=\(oscam-svn.*tar.gz\)&.*/\1/p'`
    
    wget -q -O- --trust-server-names "http://oscam.dreamosat.net/index.php?action=downloadfile&filename=$nomFichier&directory=1.20_TRUNK/arm_dm900-solo4k&" | tar -xOz > /usr/bin/oscam
    

    Désolé…

  • [^] # Re: Finalement peut-être…

    Posté par  . En réponse au message Insérer une variable dans un lien sur shell. Évalué à 1. Dernière modification le 16 janvier 2019 à 14:59.

    J'ai remplacé la commande grep par une commande sed,
    ce qui fait que, si l'environnement le permet,
    l'exécution successive des deux lignes de commandes suivantes
    devraient suffire pour créer ton nouveau fichier /usr/bin/oscam

    nomFichier=wget -q -O- --trust-server-names "http://dreamosat.net/oscam/index.php?&direction=1&order=nom&directory=1.20_TRUNK/arm_dm900-solo4k" | sed -n '0,/.*downloadfile/s/.*filename=\(oscam-svn.*tar.gz\)&.*/\1/p'
    
    wget -q -O- --trust-server-names "http://oscam.dreamosat.net/index.php?action=downloadfile&filename=$nomFichier&directory=1.20_TRUNK/arm_dm900-solo4k&" | tar -xOz > /usr/bin/oscam
  • # Finalement peut-être…

    Posté par  . En réponse au message Insérer une variable dans un lien sur shell. Évalué à 1. Dernière modification le 16 janvier 2019 à 23:02.

    En récupérant le nom du premier fichier à télécharger dans la page web :

    http://dreamosat.net/oscam/index.php?&direction=1&order=nom&directory=1.20_TRUNK/arm_dm900-solo4k
    

    et en l'assignant à la variable nomFichier,

    pour ensuite télécharger ce fichier et renommer le fichier extrait en /usr/bin/oscam

    nomFichier=`wget -q -O- --trust-server-names "http://dreamosat.net/oscam/index.php?&direction=1&order=nom&directory=1.20_TRUNK/arm_dm900-solo4k" | grep -Pom1 '.*?href="index.php\?action=downloadfile\&amp;filename=\K.*?(?=&amp)'`
    
    wget -q -O- --trust-server-names "http://oscam.dreamosat.net/index.php?action=downloadfile&filename=$nomFichier&directory=1.20_TRUNK/arm_dm900-solo4k&" | tar -xOz > /usr/bin/oscam
    
  • # Ou alors…

    Posté par  . En réponse au message Insérer une variable dans un lien sur shell. Évalué à 3. Dernière modification le 16 janvier 2019 à 22:59.

    En récupérant le nom du premier fichier à télécharger dans la page web :
    http://dreamosat.net/oscam/index.php?&direction=1&order=nom&directory=1.20_TRUNK/arm_dm900-solo4k

    et en l'assignant à la variable nomFichier :

    michel@debg53sw:~$ nomFichier=`wget -q -O- --trust-server-names "http://dreamosat.net/oscam/index.php?&direction=1&order=nom&directory=1.20_TRUNK/arm_dm900-solo4k" | grep -Pom1 '.*?href="index.php\?action=downloadfile\&amp;filename=\K.*?(?=&amp)'`
    
    michel@debg53sw:~$ echo $nomFichier 
    oscam-svn11466-arm_dm900-solo4k-webif-oscam-emu-patched.tar.gz
    

    Pour ensuite insérer la variable nomFichier dans le texte du lien de téléchargement
    en assignant ce texte à la variable HTTPSERV75 :

    michel@debg53sw:~$ HTTPSERV75="http://oscam.dreamosat.net/index.php?action=downloadfile&filename=$nomFichier&directory=1.20_TRUNK/arm_dm900-solo4k&"
    
    michel@debg53sw:~$ echo $HTTPSERV75
    http://oscam.dreamosat.net/index.php?action=downloadfile&filename=oscam-svn11466-arm_dm900-solo4k-webif-oscam-emu-patched.tar.gz&directory=1.20_TRUNK/arm_dm900-solo4k&
    
  • # insérer une variable

    Posté par  . En réponse au message Insérer une variable dans un lien sur shell. Évalué à 3. Dernière modification le 16 janvier 2019 à 03:46.

    Bonjour

    Je n'ai peut-être pas bien compris le problème, mais au cas où,
    voilà comment j'assigne la valeur 11466 à la variable freeservrb74
    puis comment j'insère la variable freeservrb74 dans la chaîne de caractères
    que j'assigne à la variable HTTPSERV75

    michel@debg53sw:~$ freeservrb74=11466
    
    michel@debg53sw:~$ HTTPSERV75="http://oscam.dreamosat.net/index.php?action=downloadfile&filename=oscam-svn$freeservrb74-arm_dm900-solo4k-webif-oscam-emu-patched.tar.gz&directory=1.20_TRUNK/arm_dm900-solo4k&"
    
    michel@debg53sw:~$ echo $HTTPSERV75 
    http://oscam.dreamosat.net/index.php?action=downloadfile&filename=oscam-svn11466-arm_dm900-solo4k-webif-oscam-emu-patched.tar.gz&directory=1.20_TRUNK/arm_dm900-solo4k&
    
  • # XFCE -> Synaptic

    Posté par  . En réponse au message Debian vs Ubuntu. Évalué à 1.

    Depuis l'interface graphique de l'Environnement de Bureau XFCE :

    Applications -> Système -> Gestionnaire de paquets Synaptic

  • # tiret long…

    Posté par  . En réponse au message éditeur texte ou markdown aidant à la conformité à la langue française. Évalué à 3.

    …conforme à la langue française…
    …insertion de tirets longs "automatiques" quand on écrit par exemple : "Mes meilleurs amis - Monique et Michel, venaient de repartir" …

    Cet exemple d'utilisation du tiret long n'est pas conforme à la langue française.

    Voir : https://fr.wikipedia.org/wiki/Tiret#Tiret_long

  • # echo

    Posté par  . En réponse au message Interpréter une variable une seule fois. Évalué à 1. Dernière modification le 22 octobre 2018 à 19:16.

    Bonjour

    michel@debg53sw:~$ cat monscript.sh     # j'affiche le contenu de mon script shell exécutable   
    #!/bin/bash
    
    read mot
    echo "$mot" >> temp
    
    michel@debg53sw:~$
    michel@debg53sw:~$ cat temp             # j'affiche le contenu du fichier nommé 'temp'
    avant…
    michel@debg53sw:~$
    michel@debg53sw:~$ ./monscript.sh       # Je lance mon script et j'entre 'ls'
    ls
    michel@debg53sw:~$
    michel@debg53sw:~$ cat temp             # j'affiche le contenu du fichier nommé 'temp'
    avant…
    ls
    michel@debg53sw:~$
  • # Et aussi…

    Posté par  . En réponse au message Les signaux avec Trap . Évalué à 2.

  • [^] # LABEL

    Posté par  . En réponse au message Lecteur de disquette molle et chemin d’accès cacher. . Évalué à 1. Dernière modification le 02 octobre 2018 à 23:03.

    Tu pourrais donner un nom de LABEL (étiquette) au système de fichiers de cette disquette :

    Ce nom de LABEL sera composé d'un maximum de 11 chiffres ou lettres en majuscules.

    # les lignes de commande(s) qui suivent devront être exécutées
    #   avec les privilèges du compte root
    
    # Récupération du nom du fichier de périphérique associé à la disquette
    fichDev=$(findmnt -n -o SOURCE --target /media/nom_utilisateur/CADC-OBF2)  
    
    # Démontage du système de fichiers de la disquette
    udisksctl unmount -b $fichDev                                              
    
    # Donner un LABEL (étiquette) au système de fichiers de la disquette
    fatlabel $fichDev  MADISQUETTE

    Et maintenant, quand tu monteras ta disquette en utilisant l'interface de ton Environnement de Bureau
    le chemin absolu du point de montage qui sera automatiquement crée sera :
    /media/nom_utilisateur/MADISQUETTE

    Bien sûr, rien ne t’empêche de créer dans un des sous-répertoires de ton répertoire personnel
    un lien symbolique qui sera associé au point de montage /media/nom_utilisateur/MADISQUETTE

  • # hiérarchie

    Posté par  . En réponse au message à quoi sert le répertoire /usr. Évalué à 10.

    Bonjour

    Il y a la page man de hierarchy :

    man hier

    ou, si besoin, la même mais traduite en français
    qui est accessible par le lien linuxfr-france.org.invalid man -> hier-7.html

  • # où alors…

    Posté par  . En réponse au message Besoin d'aide pour la commande tr. Évalué à 4. Dernière modification le 29 septembre 2018 à 14:01.

    Bonjour

    Tout dépend des caractères qui pourraient êtres "vus" comme des caractères espaces,
    alors que ce ne sont peut-être pas réellement des caractères espace.

    echo  "the cake is a lie  :)" > HL3.txt
    
    od -c HL3.txt 
    0000000   t   h   e 342 200 206   c   a   k   e 342 200 207   i   s 342
    0000020 200 210   a       l   i   e   :   )  \n
    0000032
    
    hd HL3.txt
    00000000  74 68 65 e2 80 86 63 61  6b 65 e2 80 87 69 73 e2  |the...cake...is.|
    00000010  80 88 61 20 6c 69 65 3a  29 0a                    |..a lie:).|
    0000001a
  • # correction

    Posté par  . En réponse au message generation par lot de datamatrix. Évalué à 1. Dernière modification le 10 septembre 2018 à 07:30.


    et après avoir installé ce paquetage, le chemin absolu de la commande dmtxwrite
    est /usr/bin/dmtxwrite