IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Création d'un fichier resultat avec commande SED


Sujet :

Shell et commandes GNU

  1. #1
    Membre du Club Avatar de Tofdu31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2016
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2016
    Messages : 93
    Points : 69
    Points
    69
    Par défaut Création d'un fichier resultat avec commande SED
    Bonjour à tous,
    Je possède un fichier source permisions.csv ayant les informations suivantes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    android.permission.INTERNET
    android.permission.WRITE_EXTERNAL_STORAGE
    android.permission.ACCESS_NETWORK_STATE
    android.permission.BLUETOOTH
    android.permission.BLUETOOTH_ADMIN
    android.permission.ACCESS_WIFI_STATE
    android.permission.READ_PHONE_STATE
    Cela pourrait être avec des lignes en moins comme des lignes en plus.

    En faisant quelques recherches, pour savoir comment faire pour interpréter toutes les lignes de mon fichier permisions.csv je suis tombé sur les informations suivantes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for /F "tokens=*" %%A in (permisions.csv) do [process] %%A
    Charge donc à moi à remplacer [process] par ma commande pour créer au final un fichier xml (final.xml) dont les conditions sont les suivantes :

    Uniquement 1ere ligne :
    débute par
    Avec l' ID Name du package, cet ID sera contenu dans une variable (ça c'est bon)

    A la suite on ajoute :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ","permissions":[{"name":"

    Puis on ajoute la permission de la 1ere ligne : source permisions.csv

    Puis on ajoute pour la séparation avec uniquement les prochaines lignes du fichier permisions.csv : Et enfin uniquement mais uniquement pour la dernière ligne du fichier permisions.csv ceci :
    Voici donc le résultat final attendu en rapport à l'exemple permissions.csv:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    [{"packageName":"com.androidappli.toto","permissions":[{"name":"android.permission.INTERNET","value":"1"},
    {"name":"android.permission.WRITE_EXTERNAL_STORAGE","value":"1"},
    {"name":"android.permission.ACCESS_NETWORK_STATE","value":"1"},
    {"name":"android.permission.BLUETOOTH","value":"1"},
    {"name":"android.permission.BLUETOOTH_ADMIN","value":"1"},
    {"name":"android.permission.ACCESS_WIFI_STATE","value":"1"},
    {"name":"android.permission.READ_PHONE_STATE","value":"1"}]}]

    Merci pour votre coup de main

    Tof

  2. #2
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $ var=pouet
    $ sed -e '1iMa première ligne avec '"$var" -e 's@^@{"name":"@' -e '$!s@$@","value":"1"},@' -e '$s@$@","value":"1"}]}]@' permissions.txt
    Ma première ligne avec pouet
    {"name":"android.permission.INTERNET","value":"1"},
    {"name":"android.permission.WRITE_EXTERNAL_STORAGE","value":"1"},
    {"name":"android.permission.ACCESS_NETWORK_STATE","value":"1"},
    {"name":"android.permission.BLUETOOTH","value":"1"},
    {"name":"android.permission.BLUETOOTH_ADMIN","value":"1"},
    {"name":"android.permission.ACCESS_WIFI_STATE","value":"1"},
    {"name":"android.permission.READ_PHONE_STATE","value":"1"}]}]
    Tu remarques que $var est une variable externe.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  3. #3
    Membre du Club Avatar de Tofdu31
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Octobre 2016
    Messages
    93
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2016
    Messages : 93
    Points : 69
    Points
    69
    Par défaut
    Bonjour,

    Alors je comprends un peu le sens et je vais y travailler dessus.

    Toutefois, 1er point que j'ai pas compris. Les informations nécessaires pour créer mon xml sont dans un fichier nommé permissions.csv
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    android.permission.INTERNET
    android.permission.WRITE_EXTERNAL_STORAGE
    android.permission.ACCESS_NETWORK_STATE
    android.permission.BLUETOOTH
    android.permission.BLUETOOTH_ADMIN
    android.permission.ACCESS_WIFI_STATE
    android.permission.READ_PHONE_STATE
    Et le tout doit finir dans un fichier xml on va dire final.xml

    En rapport à l'exemple ci-dessus, voici final.xml comment il doit être :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    [{"packageName":"com.androidappli.toto","permissions":[{"name":"android.permission.INTERNET","value":"1"},
    {"name":"android.permission.WRITE_EXTERNAL_STORAGE","value":"1"},
    {"name":"android.permission.ACCESS_NETWORK_STATE","value":"1"},
    {"name":"android.permission.BLUETOOTH","value":"1"},
    {"name":"android.permission.BLUETOOTH_ADMIN","value":"1"},
    {"name":"android.permission.ACCESS_WIFI_STATE","value":"1"},
    {"name":"android.permission.READ_PHONE_STATE","value":"1"}]}]
    Du coup pour var, j'y mettrais le nom de l'application ID. ici en exemple, c'est com.androidappli.toto

    Donc pour la premiere ligne un peu spéciale, j'avais pensé à faire 2 variables, une incluant le com.androidappli.toto
    Et un autre variable incluant l'ensemble des éléments de la première ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set applicationID=com.androidappli.toto
    set ligne_first=[{"packageName":"%applicationID%","permissions":[
    Bon je vais tenter des manips et rééditer si j'y arrive ce post. (a oui, malheureusement, j'ai des % car suis sous windows...)

    Merci pour tout

    Tof

Discussions similaires

  1. [Zip] Création d'un fichier zip avec zip.lib.php corrompue
    Par fdthierry dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 02/06/2008, 14h01
  2. Réponses: 1
    Dernier message: 18/02/2008, 07h53
  3. Création d'un fichier .bmp avec PrintWindow
    Par Irken dans le forum Windows
    Réponses: 8
    Dernier message: 05/09/2007, 18h03
  4. création d'un fichier excel avec ADO
    Par sony351 dans le forum C++Builder
    Réponses: 1
    Dernier message: 28/02/2007, 15h54
  5. [JDOM] Création d'un fichier xml avec jdom
    Par fabricew59 dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 09/08/2006, 11h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo