MicP a écrit 463 commentaires

  • [^] # Re: Peut-être avec ce script bash

    Posté par  . En réponse au message Commande de suppression par analogie de nom.. Évalué à 3.

    Effectivement, ça simplifierait les choses
    Ce qui donnerait :

    #!/bin/bash
    
    for fich in "$@"; do
        if [ -e "$fich" -a "${fich##*.}" = "JPG" ]; then
            rm "$fich"
            if [ -e "${fich%.*}.ARW" ]; then
                rm "${fich%.*}.ARW"
            fi
        fi
    done

    (J'en ai profité pour reformuler la ligne du premier if
    en utilisant un -a plutôt que le &&)

  • [^] # Re: Peut-être avec ce script bash

    Posté par  . En réponse au message Commande de suppression par analogie de nom.. Évalué à 1. Dernière modification le 07 avril 2019 à 16:35.

    …sauf que là tu lui fais effacer les JPG et les RAW s'ils existent.…

    Non, je ne lui fais rien effacer du tout :

    Dans la ligne de commande qui lancera le script,
    s'il ne donne aucun nom de fichier dont le nom d'extension serait .JPG
    aucun fichier ne sera supprimé.

    D'autre part, quoi qu'il donne comme argument dans la ligne de commande lançant ce script,
    aucun fichier dont le nom d'extension serait .RAW
    ne sera supprimé ou modifié ou effacé.

  • # Peut-être avec ce script bash

    Posté par  . En réponse au message Commande de suppression par analogie de nom.. Évalué à 3.

    Bonjour

    #!/bin/bash
    
    if [ $# -gt 0 ]; then   # S'il y a des arguments qui suivent la commande
        args=("$@")           # Créer un tableau avec la liste de ces arguments
        for fich in "${args[@]}"; do   # Pour chacun de ces arguments
            if [ -e "$fich" ] && [ "${fich##*.}" = "JPG" ]; then  # Si cet argument est un nom de fichier existant
                                                                  # - et que son nom d'extension est bien ".JPG"
                rm "$fich"                                          # Alors supprimer le fichier
                if [ -e "${fich%.*}.ARW" ]; then                    # Si il existe un fichier du même nom
                                                                    # - dont le nom d'extension est ".ARW"
                    rm "${fich%.*}.ARW"                               # Alors supprimer ce fichier
                fi
            fi
        done
    fi
  • [^] # Re: Fuyez pauvres fous !

    Posté par  . En réponse au message Comment extraire une partie d'un fichier texte . Évalué à 3.

    Tout à fait d'accord,
    je n'avais fait que répondre à la question posée
    en utilisant l'outil proposé.

    Il existe aussi, avec Python : BeautifulSoup

  • [^] # Re: avec sed

    Posté par  . En réponse au message Comment extraire une partie d'un fichier texte . Évalué à 2. Dernière modification le 13 mars 2019 à 06:55.

    Pardon, je n'avais pris que la ligne extraire
    et pas le texte intégral la contenant

    sed -ne '/<th class="tg-juwk">/ s/.*<th class="tg-juwk">\(.*\)<\/th.*/\1/p' $FreeServertmpa70 > $FreeServertmpb70
  • # avec sed

    Posté par  . En réponse au message Comment extraire une partie d'un fichier texte . Évalué à 2. Dernière modification le 13 mars 2019 à 06:35.

    Bonjour

    sed 's/.*<th class="tg-juwk">\(.*\)<\/th.*/\1/' $FreeServertmpa70 > $FreeServertmpb70

    Ou bien

    sed -E 's/.*<th class="tg-juwk">(.*)<\/th.*/\1/' $FreeServertmpa70 > $FreeServertmpb70
  • [^] # Re: peut-être une solution

    Posté par  . En réponse au message mot de passe sudo et astérisques???. Évalué à 2.

    Merci pour le retour.

    Puisque la solution fonctionne, je la reporte ci-dessous :

    sudo mv /etc/sudoers.d/0pwfeedback{,.disabled}
  • # peut-être une solution

    Posté par  . En réponse au message mot de passe sudo et astérisques???. Évalué à 2. Dernière modification le 07 mars 2019 à 15:58.

    Bonjour

    Je n'ai pas de distribution Mint accessible,
    donc, je n'ai pas pu tester la solution proposée dans le message
    de ce fil de discussion sur forums.linuxmint.com dont le titre est :
    Mint 19.1—Terminals show asterisks on password. How to disable this feature?

  • [^] # Re: Avec cat

    Posté par  . En réponse au message Ajouter un mot au debut de la ligne sur shell. Évalué à 4.

    J'ai beaucoup appris en lisant les pages du The Bash Hackers Wiki
    (et surtout, qu'il me reste encore beaucoup à apprendre, mais bon, comme j'aime çà … )

  • [^] # Re: Avec cat

    Posté par  . En réponse au message Ajouter un mot au debut de la ligne sur shell. Évalué à 2.

    Il faudra penser à supprimer le fichier toto


    Sinon, on peut aussi,
    toujours avec cat en bash
    mais sans le fichier toto

    echo -n "OScam " | cat - tonfichier > tonfichier0 && rm -f tonfichier && mv tonfichier{0,}
  • # 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