Script Shell : Extraire une variable par cut

Résolu
antoinebe Messages postés 10 Statut Membre -  
jisisv Messages postés 3678 Statut Modérateur -
Bonjour Messieurs Dames :)

Je viens à vous pour une question un peu technique ^^
Et d'autant plus pour moi qui suis plus bidouilleur que codeur ^^'

J'aimerais créer une variable à partir d'une extraction, pour ce faire je passe par cut, mais l'enchainement dans mon script pose problème.

Je n'arrive pas à bien utiliser le echo et le délimiter de cut en guillemet ""

Ma donnée à extraire étant "monfichier"=>
<?xml version="1.0" encoding="utf-16" standalone="yes"?> <values> <add key="bla" value="azerty"/> </values>


En 10ème délimiter guillemet donc.

Mon cut passe bien avec cette commande, bien que je doute sur ma manière d'échapper les guillemets :
#cut -d '"' -f10 monfichier
#azerty

Cependant quand je souhaite l'utiliser avec un echo puis un cat, j'imprime la commande et non la donnée à extraire.

echo cut -d '"' -f10 monfichier >> test 
cat test


J'aime même essayé en awk d'après mes recherches internet

echo awk -F\" 'NR==2{print $10}' monfichier >> test 
cat test


Mais mon fichier test contient toujours désespérément la commande employée et non la donnée à extraire :(

Au final j'aimerais donc simplement extraire la donnée d'une première variable afin de la déclarer comme étant elle même une variable.
Tout ce ci directement dans le script, ou à défaut dans des fichiers que je créerais / supprimerais par le script.


2 réponses

  1. jisisv Messages postés 3678 Statut Modérateur 936
     
    C'est une syntaxe EQUIVALENTE sous bash, bien plus lisible que ces infâmes backquotes.
    (d'autant plus que je suis mal voyant :(

    D'autre part, ta manière de traiter est petit peu pourrie.
    Utilise xslt et un processeur XSLT comme xalan
    Voir
    https://haypo.developpez.com/tutoriel/xml/xslt/

    Johan Daine
    0
  2. periplasme Messages postés 422 Statut Membre 53
     
    il faut mettre des back-quote (atl GR + 7) autour de la commande cut à executer
    echo cut -d '"' -f10 monfichier >> test 

    devient
    echo 'cut -d '"' -f10 monfichier' >> test 
    -1
    1. periplasme Messages postés 422 Statut Membre 53
       
      attention ne fais pas un copier-coller, le site à transformé mes back-quote en simple-quote ...
      0
    2. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Salut,

      Les back-quotes c'est périmé ;-))

      echo $(cut -d '"' -f10 monfichier) >> test 
      0
    3. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Ou plus simplement :

      var="$(cut -d '"' -f10 monfichier)"

      ;-))
      0
    4. periplasme Messages postés 422 Statut Membre 53
       
      merde, faut que je me mette à jour ... depuis quand les back quote ont été "remplacé" ?
      0
    5. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
       
      je dirais depuis l'existence du Korn shell, ksh
      0