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 :

Dictionnaire python en Shell & Synchronisation de fichiers


Sujet :

Shell et commandes GNU

  1. #1
    Membre régulier Avatar de Liamm
    Femme Profil pro
    Enseignant
    Inscrit en
    Janvier 2019
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 160
    Points : 80
    Points
    80
    Par défaut Dictionnaire python en Shell & Synchronisation de fichiers
    Bonjour,

    J'aurais 2 questions à vous soumettre (je suis débutante) :

    Q1/ J'essaye de reprogrammer en Shell, des (petits) programmes python, pour apprendre le Shell.
    Je me demandais :
    ¿ Par quoi remplacer les dictionnaires Python, avec le Shell ?
    ¿ Pensez-vous qu'avec les tableaux associatifs, on puisse y arriver ?

    Q2/ J'essaye de faire de la synchronisation de fichiers, (on dit aussi, il me semble, appareillage).
    Dans le cas simple où :
    * on a que deux fichiers à synchroniser
    * on a des ruptures premières, dernières simples (cf. Méthode C O R I G à l'origine de PAC Batch et PAC Base)
    ¿ Quels outils ou commandes du Shell permettraient de faire cela le plus simplement possible ?

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 386
    Points
    19 386
    Par défaut
    Bonjour,

    par rapport à un dictionnaire python, un tableau associatif est très limité : il ne peut contenir que des variables, pas de tuples, de listes, ou de dictionnaires, seulement des variables.

    "appareillage", pour moi, c'est soit le départ d'un bateau, soit équiper d'un appareil.
    "l'appairage", quant à lui, concerne le bluetooth.

    on a des ruptures premières, dernières simples (cf. Méthode C O R I G à l'origine de PAC Batch et PAC Base)
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre régulier Avatar de Liamm
    Femme Profil pro
    Enseignant
    Inscrit en
    Janvier 2019
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 160
    Points : 80
    Points
    80
    Par défaut
    Bonjour,

    Le terme appareillage semble exister; voir ici

    J'ai remis ce post : "Reste à résoudre";
    notamment pour avoir des réponses à la seconde question :
    Q2/ J'essaye de faire de la synchronisation de fichiers, (on dit aussi, il me semble, appareillage).
    Dans le cas simple où :
    * on a que deux fichiers à synchroniser
    * on a des ruptures premières, dernières simples (cf. Méthode C O R I G à l'origine de PAC Batch et PAC Base)
    ¿ Quels outils ou commandes du Shell permettraient de faire cela le plus simplement possible ?
    J'ai n'ai qu'une réponse partielle : La commande join est utile certes; mais quelles sont les commandes shell qui gèrent les ruptures ?
    De mémoire awk le fait en procédant avec une lecture en buffer. (à vérifier)
    Mais pour les autres commandes ?

    Vocabulaire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Fichier trié croissant sur le premier champ
    AAA;dore;mifa
    CCC;toro;toto . . . => rupture première sur le 1er champ   
    CCC;tata;titi
    CCC;tutu;abcd . . . => rupture dernière sur le 1er champ   
    FFF;etce;tera

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 386
    Points
    19 386
    Par défaut
    ce n'est pas parce que quelqu'un utilise une expression que cette dernière est correcte*.
    par exemple, de nombreuses personnes disent être "sous" linux/Windows/MacOS, alors que seul l'ordinateur est "sous" un OS donné (de bas en haut : le sol, la table, l'ordi, l'OS) : l'utilisateur est sous cheveux.

    --
    * de fait, elle existe, mais ça n'en est pas moins une erreur.

    il y a de nombreuses erreurs sur internet, qui sont pérennisées parce qu'elles ne sont jamais corrigées.
    on peut considérer que ce n'est pas grave, mais ce serait se faire le tenant du chaos, où tout voudrait dire tout et son contraire.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 801
    Points
    30 801
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    l'utilisateur est sous cheveux.
    Et encore, pas tous.
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  6. #6
    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 458
    Points
    13 458
    Par défaut
    Bonjour

    Oui. Mais ... "sous la IVème république" ... "sous le régime de la communauté de biens". Les gens indiquent le contexte.

    La personne qui confond "appairer" et "appareiller" doit faire partie du groupe des personnes qui confondent "acceptions" et "acceptations", "Et cætera" et "Ex cétera", et d'autres.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  7. #7
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 386
    Points
    19 386
    Par défaut
    des sous, il yen a plein : sous-entendu, sous-traitant...
    et autant d'expression qui utilisent correctement "sous".

    le contexte, c'est : mes mains sur le clavier, les yeux sur l'écran...
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  8. #8
    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 458
    Points
    13 458
    Par défaut
    Honnêtement, je ne crois pas que ce soit la raison. Les couches physiques sont plus basses que les couches logiques. Plus on est abstrait, plus on s'élève, on prend du recul. Plus on descend sur le plancher des vaches, plus on est concret et on descend. La position de ta chaise et le clavier n'a pas de rapport. Le hardware est en dessous du software et le système d'exploitation est entre les deux.
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  9. #9
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 386
    Points
    19 386
    Par défaut
    et qui manipule tout ça ? qui a le contrôle là-dessus ?
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  10. #10
    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 458
    Points
    13 458
    Par défaut
    Tu penses que nos cheveux dirigent nos actions ? Bon, ben, j'vais chez le coiffeur

    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  11. #11
    Membre régulier Avatar de Liamm
    Femme Profil pro
    Enseignant
    Inscrit en
    Janvier 2019
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 160
    Points : 80
    Points
    80
    Par défaut
    Bonjour,

    Autrement dit :

    Voici le début d'un fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    liam@HAL42:~/Documents/Botanique$ cat Liam_botanique_copie.csv 
    11Lieu;12Nom_latin;13Famille;14Nom_vernaculaire;15Proba_Rmques
    BAPB;Achillea filipendulina;ASTERACEAE;Achillée à feuilles de fougère;90.40pc
    BAPB;Celtis australis;CANNABACEAE;Fanalrigon ou Micocoulier de Provence;62.00% BrossoPharmacie
    BFAM;Koelreuteria paniculata;SAPINDACEAE;Koelérie paniculée;86.9pc
    BFBB;Tilia henryana;MALVACEAE;Tilleul de Henry;88.73 pc
    BFDB;Acer campestre;Aceraceae;Érable champêtre;Mairie
    BFDB;Acer davidii;Sapindaceae;Érable du père David;Mairie
    BFDB;Ailanthus altissima;SIMAROUBACEAE;Ailante;8.82pc
    BFDB;Alliaria petiolata;BRASSICACEAE;Alliaire;
    BFDB;Anisantha sterilis;POACEAE;Brome stérile;45.93pc
    BFDB;Arctium lappa;ASTERACEAE;Bardane commune;59.11 pc
    BFDB;Arctium minus;ASTERACEAE;Petite bardane;
    BFDB;Bryonia cretica;CUCURBITACEAE;Bryone dioïque;
    BFDB;Carduus pycnocephalus;ASTERACEAE;Chardon a capitules denses;
    BFDB;Cedrus atlantica;Pinaceae;Cèdre de l'Atlas;Mairie
    BFDB;Cedrus libani;PINACEAE;Cèdre du Liban;15.03 pc
    BFDB;Celtis Australis;Cannabaceae (anciennement Ulmaceae);Micocoulier de Provence;Mairie
    BFDB;Cercis siliquastrum;Caesalpiniaceae;Arbre de Judée;Mairie
    BFDB;Chaerophyllum temulum;APIACEAE;Cerfeuil enivrant;
    BFDB;Cota altissima;ASTERACEAE;Anthémis géante;38.26 pc fetide
    BFDB;Crataegus monogyna;Rosaceae;Aubépine monogyne;Mairie
    BFDB;Fagus Sylvatica;Fagaceae;Hêtres communs;Mairie
    BFDB;Fagus Sylvatica "Pendula";Fagaceae;Hêtre pleureur;Mairie
    BFDB;Fraxinus excelsior;Oleaceae;Frêne;Mairie
    BFDB;Fraxinus quadrangulata;Oleaceae;Frêne bleu du Canada;Mairie
    BFDB;Geum urbanum;ROSACEAE;Benoîte commune;
    BFDB;Ginkgo biloba;Ginkgoaceae;Ginkgo;Mairie
    BFDB;Heliotropium europaeum;BORAGINACEAE;Héliotrope d'Europe;CLOUDSQU
    BFDB;Ipomoea hederacea;CONVOLVULACEAE;Ipomée à feuilles de lierre;CLOUDSQ 1.57
    BFDB;Ipomoea purpurea;CONVOLVULACEAE;Volubilis;CLOUDSQ 1.77
    BFDB;Lapsana communis;ASTERACEAE;Lampsane commune;97.99 pc
    BFDB;Ligustrum vulgare;OLEACEAE;Troène commun;78.54pc
    BFDB;Lonicera japonica;CAPRIFOLIACEAE;Clématite du Japon;01.45pc*?
    BFDB;Malus Baccata;Rosaceae;Pommiers à fleurs;Mairie
    BFDB;Morus Alba;Moraceae;Mûrier blanc;Mairie
    BFDB;Parrotia persica;Hamamelidaceae;Parrotie de Perse;Mairie
    BFDB;Phalaris canariensis;POACEAE;Alpiste;17.04pc
    BFDB;Poa annua;POACEAE;Pâturin annuel;
    BFDB;Poa trivialis;POACEAE;Gazon d Angleterre;
    BFDB;Prunella vulgaris;LAMIACEAE;Brunelle commune;
    BFDB;Ptelea trifoliata;RUTACEAE;Orme de Samarie;
    Quelle commande shell donne le nombre de lignes par lieu ?

    Et ce sans utiliser awk.
    Le fichier est trié par ordre croissant sur le lieu.
    On voit bien, sur cet exemple, qu'il faut compter les lignes ($ wc -l) jusqu'à chaque rupture dernière sur le champ "Lieu"

  12. #12
    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 458
    Points
    13 458
    Par défaut
    Premier réflexe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ grep -o '^[^;]*' Liam_botanique_copie.csv  | uniq -c
          1 11Lieu
          2 BAPB
          1 BFAM
          1 BFBB
         36 BFDB
    Mais c'est bien parce que tu assures que le fichier est trié. Sinon, plus générique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ grep -o '^[^;]*' Liam_botanique_copie.csv | sort | uniq -c
          1 11Lieu
          2 BAPB
          1 BFAM
          1 BFBB
         36 BFDB
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  13. #13
    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 458
    Points
    13 458
    Par défaut
    Pardon, j'en remets une couche. À la réflexion, on peut faire ça en built-in bash.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ declare -iA res; while IFS=';' read lieu reste;do res[$lieu]+=1;done < Liam_botanique_copie.csv; for i in ${!res[@]}; do echo "$i ${res[$i]}";done; unset res
    BAPB 2
    BFAM 1
    BFBB 1
    11Lieu 1
    BFDB 36
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  14. #14
    Membre régulier Avatar de Liamm
    Femme Profil pro
    Enseignant
    Inscrit en
    Janvier 2019
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 160
    Points : 80
    Points
    80
    Par défaut
    Merci,

    ¡ Que de solutions !

    Je n'y avait pas pensé; mais à la réflexion j'aurais dû en trouver une :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    liam@HAL42:~/Documents/Botanique$ cat Liam_botanique_copie.csv | cut -d ";" -f 1 | sort | uniq -c 
          1 11Lieu
          2 BAPB
          1 BFAM
          1 BFBB
         36 BFDB
    Encore merci.

  15. #15
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 386
    Points
    19 386
    Par défaut
    le cat n'est pas indispensable.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  16. #16
    Membre régulier Avatar de Liamm
    Femme Profil pro
    Enseignant
    Inscrit en
    Janvier 2019
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2019
    Messages : 160
    Points : 80
    Points
    80
    Par défaut
    Quand même, j'aime bien les chats !

  17. #17
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 552
    Points : 19 386
    Points
    19 386
    Par défaut
    Alf aussi.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 08/08/2006, 11h03
  2. Script shell et fin de fichier
    Par jeff_! dans le forum Linux
    Réponses: 11
    Dernier message: 25/05/2006, 22h02
  3. (MS DOS) Synchronisation de fichiers
    Par Furius dans le forum Autres Logiciels
    Réponses: 5
    Dernier message: 15/11/2005, 13h35
  4. Script shell - écriture dans un fichier
    Par Leishmaniose dans le forum Linux
    Réponses: 6
    Dernier message: 13/12/2004, 22h48
  5. [SHELL] Icônes associées à des fichiers
    Par agh dans le forum API, COM et SDKs
    Réponses: 5
    Dernier message: 09/04/2003, 17h04

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