[Shell] extraire chaine de caractere

koma_666 Messages postés 473 Statut Membre -  
zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

J'ai un fichier blabla.txt qui contient de nombreuses lignes similaires avec en début de fichiers d'autres chaines de caractères non similaires aux lignes suivantes :

<a target="_blank" id="alive_link" title="Name: atchoum Size: 153.1 MB " href="http://www.blabla.com/out.php?url=http://www.blibli.com/14AZz45"</a></p>

<a target="_blank" id="alive_link" title="Name: atchoum Size: 153.1 MB " href="http://www.blabla.com/out.php?url=http://www.blibli.com/14AZz46"</a></p>

Je souhaiterais extraire une partie de ligne, en l'occurrence, toutes les adresses : https://www.blibli.com/XXXXXXX

En utilisant un grep, cela me sélectionne bien ce que je veux, mais ca ne "supprime" pas le reste.

Une petite aide ?

Merci d'avance.

4 réponses

  1. Franzux Messages postés 9705 Statut Contributeur 1 146
     
    Colle nous la commande que tu saisis.
    0
  2. koma_666 Messages postés 473 Statut Membre 34
     
    grep "https://www.blibli.com/[a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9]" blabla.txt
    0
  3. jisisv Messages postés 3678 Statut Modérateur 936
     
    Inspire-toi de ceci
    johand@osiris: ~/src/CCM/bash $ cat urls.txt  
    <a target="_blank" id="alive_link" title="Name: atchoum Size: 153.1 MB " href="https://www.blibli.com/14AZz45 target='_blank'>http://www.blabla.com/out.php?url=https://www.blibli.com/14AZz45"</a></p> 
    
    <a target="_blank" id="alive_link" title="Name: atchoum Size: 153.1 MB " href="https://www.blibli.com/14AZz46 target='_blank'>http://www.blabla.com/out.php?url=https://www.blibli.com/14AZz46"</a></p>  
    
    johand@osiris: ~/src/CCM/bash $ cat getURLS.sh  
    grep -i "https://www.blibli.com/[a-z0-9]*" urls.txt | while read line; do 
     tmp=${line##?*url=}; 
     url=${tmp%%\"?*}; 
     echo $url; 
    done 
    
    johand@osiris: ~/src/CCM/bash $ sh getURLS.sh  
    https://www.blibli.com/14AZz45 
    https://www.blibli.com/14AZz46 
    
    

    Voir par exemple
    http://abs.traduc.org/abs-fr/abs-5.3.pdf (page physique 96)

    Gates gave ^H sold you the windows.
    GNU gave us the whole house.(Alexandrin)
    0
  4. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    $ cat plop 
    <a target="_blank" id="alive_link" title="Name: atchoum Size: 153.1 MB " href="http://www.blabla.com/out.php?url=http://www.blibli.com/14AZz45"</a></p>
    
    <a target="_blank" id="alive_link" title="Name: atchoum Size: 153.1 MB " href="http://www.blabla.com/out.php?url=http://www.blibli.com/14AZz46"</a></p> 
    
    $ sed -n 's#.*url=\([^"]*\).*#\1#p' plop 
    https://www.blibli.com/14AZz45
    https://www.blibli.com/14AZz46
    
    $

    ;-))
    0
    1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Sinon juste avec "grep" on peut faire comme cela (mais il faut rajouter un pipe) :

      grep -o '=http[^"]*' plop | grep -o 'h.*'
      0