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

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

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

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

      ;-))
    4. merde, faut que je me mette à jour ... depuis quand les back quote ont été "remplacé" ?
    5. Contributeur
      je dirais depuis l'existence du Korn shell, ksh
  2. 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