Script Shell : Extraire une variable par cut

Résolu
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. Modérateur
    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
    1. 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. attention ne fais pas un copier-coller, le site à transformé mes back-quote en simple-quote ...
        0
      2. Contributeur
        Salut,

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

        echo $(cut -d '"' -f10 monfichier) >> test 
        0
      3. Contributeur
        Ou plus simplement :

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

        ;-))
        0
      4. merde, faut que je me mette à jour ... depuis quand les back quote ont été "remplacé" ?
        0
      5. Contributeur
        je dirais depuis l'existence du Korn shell, ksh
        0