Script Shell : Extraire une variable par cut

Résolu/Fermé
antoinebe Messages postés 9 Date d'inscription vendredi 20 mai 2011 Statut Membre Dernière intervention 7 octobre 2011 - Modifié par antoinebe le 1/10/2011 à 01:51
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 - 1 oct. 2011 à 23:22
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.




A voir également:

2 réponses

jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
1 oct. 2011 à 23:22
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
periplasme Messages postés 391 Date d'inscription vendredi 22 avril 2011 Statut Membre Dernière intervention 5 février 2013 53
Modifié par periplasme le 1/10/2011 à 08:22
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
periplasme Messages postés 391 Date d'inscription vendredi 22 avril 2011 Statut Membre Dernière intervention 5 février 2013 53
1 oct. 2011 à 08:22
attention ne fais pas un copier-coller, le site à transformé mes back-quote en simple-quote ...
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
1 oct. 2011 à 08:37
Salut,

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

echo $(cut -d '"' -f10 monfichier) >> test 
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 407
1 oct. 2011 à 09:53
Ou plus simplement :

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

;-))
0
periplasme Messages postés 391 Date d'inscription vendredi 22 avril 2011 Statut Membre Dernière intervention 5 février 2013 53
1 oct. 2011 à 14:19
merde, faut que je me mette à jour ... depuis quand les back quote ont été "remplacé" ?
0
dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
1 oct. 2011 à 14:26
je dirais depuis l'existence du Korn shell, ksh
0