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 :

Besoin d'aide : commande shell


Sujet :

Shell et commandes GNU

  1. #21
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Points
    5 915
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    awk  '$1 ~ /^abcd/{  $2=$2"fr" } { print }    ' Fichier.txt

  2. #22
    Expert éminent

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Points : 6 276
    Points
    6 276
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Oui, mais le monsieur a dit plus haut, qu'il avait des tabulations
    C'est pô d'ma fôt si le môssieur il connaît pô la balise code et que j'ai en plus la mémoire qui flanche

    Citation Envoyé par becket Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    awk  '$1 ~ /$abcd/{  $2=$2"fr" } { print }    ' Fichier.txt
    Change le "/$abcd/" en "/^abcd/"
    $ man woman
    Il n'y a pas de page de manuel pour woman.

  3. #23
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Points
    5 915
    Par défaut
    C'est fait

  4. #24
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 286
    Points : 12 742
    Points
    12 742
    Par défaut
    Et avec un peu de chance, il va encore s'apercevoir que des fichiers ont déjà été modifiés à la main et donc il ne faudra rajouter le ".fr" que s'il n'a pas déjà été rajouté...
    Cordialement.

  5. #25
    Candidat au Club
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Mai 2013
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2013
    Messages : 9
    Points : 4
    Points
    4
    Par défaut
    Magique

    et si on veut par exemple exclure les colonnes qui contiennent déjà ce "fr" à la fin( comme la première ligne par exemple)? comment faire?
    j'ai essayé le " !s ", mais j'étais perdu

  6. #26
    Membre éclairé Avatar de jmelyn
    Homme Profil pro
    Administrateur systèmes et réseaux
    Inscrit en
    Septembre 2007
    Messages
    703
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur systèmes et réseaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Points : 823
    Points
    823
    Par défaut
    Bonjour,

    Si des lignes ont déjà été modifiées, la commande awk change juste un peu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk '$1 ~ /^abcd/ && ! $2 ~ /\.fr$/ {$2=$2 ".fr"} {print}' Fichier.txt
    Edit: ".fr" à contrôler sur le deuxième champ, merci disedorgue
    Un problème bien posé est déjà résolu (H. Bergson).

  7. #27
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 286
    Points : 12 742
    Points
    12 742
    Par défaut
    Il faut contrôler le .fr sur le deuxième champs pas le premier

    Qui si colle pour le sed ???
    Cordialement.

  8. #28
    Expert éminent

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Points : 6 276
    Points
    6 276
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Qui si colle pour le sed ???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ cat brol
    abcd	bbbb-fr	@cccc
    abcd	bbbb	@cccc
    abcd	eeee	@cccc
    xaee	bbbb	@cccc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ sed '/^abcd/{/[^\t]*\t[^\t]*fr/b;s/[^\t]*\t[^\t]*/&-fr/}' brol 
    abcd	bbbb-fr	@cccc
    abcd	bbbb-fr	@cccc
    abcd	eeee-fr	@cccc
    xaee	bbbb	@cccc
    $ man woman
    Il n'y a pas de page de manuel pour woman.

  9. #29
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Points : 5 915
    Points
    5 915
    Par défaut
    Il n'y a rien à faire, je trouve que awk est plus lisible mais c'est un bel exercice

  10. #30
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 286
    Points : 12 742
    Points
    12 742
    Par défaut
    Citation Envoyé par zipe31 Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ cat brol
    abcd	bbbb-fr	@cccc
    abcd	bbbb	@cccc
    abcd	eeee	@cccc
    xaee	bbbb	@cccc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ sed '/^abcd/{/[^\t]*\t[^\t]*fr/b;s/[^\t]*\t[^\t]*/&-fr/}' brol 
    abcd	bbbb-fr	@cccc
    abcd	bbbb-fr	@cccc
    abcd	eeee-fr	@cccc
    xaee	bbbb	@cccc
    Allez, je suis taquin:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo -e 'abcd\tfrbb\t@cccc' | sed '/^abcd/{/[^\t]*\t[^\t]*fr/b;s/[^\t]*\t[^\t]*/&-fr/}'
    abcd    frbb    @cccc
    et ce n'est pas les "\t" dans le echo...

    une qui fonctionne (à priori):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ echo -e 'abcd\tfrbb\t@cccc' | sed '/^abcd/{/[^\t]*\t[^\t]*-fr\t/!s/\([^\t]*\t[^\t]*\)\t/\1-fr\t/}'
    abcd    frbb-fr @cccc
    Cordialement.

  11. #31
    Expert éminent

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Points : 6 276
    Points
    6 276
    Par défaut
    Citation Envoyé par disedorgue Voir le message
    Allez, je suis taquin:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    echo -e 'abcd\tfrbb\t@cccc' | sed '/^abcd/{/[^\t]*\t[^\t]*fr/b;s/[^\t]*\t[^\t]*/&-fr/}'
    abcd    frbb    @cccc
    et ce n'est pas les "\t" dans le echo...


    une qui fonctionne (à priori):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $ echo -e 'abcd\tfrbb\t@cccc' | sed '/^abcd/{/[^\t]*\t[^\t]*-fr\t/!s/\([^\t]*\t[^\t]*\)\t/\1-fr\t/}'
    abcd    frbb-fr @cccc
    Sinon, juste un chtit sed '/^abcd/{/[^\t]*\t[^\t]*fr\b/b;s/[^\t]*\t[^\t]*/&-fr/}' devrait suffire
    $ man woman
    Il n'y a pas de page de manuel pour woman.

  12. #32
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 286
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 286
    Points : 12 742
    Points
    12 742
    Par défaut

    manque juste le Bon, allez, maintenant une version pure builtin bash:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ cat plip
    abcd    bbbb-fr @cccc
    abcd    bbbb    @cccc
    abcd    eeee    @cccc
    xaee    bbbb    @cccc
    abcd    frddfr  @cccc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ while read a b c ; do case $a in abcd) case $b in *-fr) echo -e "$a\t$b\t$c" ;; *) echo -e "$a\t$b-fr\t$c" ;; esac ;; *) echo -e "$a\t$b\t$c" ;; esac; done <plip
    abcd    bbbb-fr @cccc
    abcd    bbbb-fr @cccc
    abcd    eeee-fr @cccc
    xaee    bbbb    @cccc
    abcd    frddfr-fr       @cccc
    Cordialement.

  13. #33
    Expert éminent

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Points : 6 276
    Points
    6 276
    Par défaut
    Citation Envoyé par disedorgue Voir le message

    manque juste le


    Bon, allez, maintenant une version pure builtin bash:


    $ man woman
    Il n'y a pas de page de manuel pour woman.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Besoin d'aide commandes shell administration serveur linux
    Par SEIYA. dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 10/03/2015, 17h17
  2. Aide commande shell
    Par napster94700 dans le forum VB.NET
    Réponses: 2
    Dernier message: 27/06/2010, 14h05
  3. Besoin d'aide pour un script shell
    Par lecharcutierdelinux dans le forum Linux
    Réponses: 5
    Dernier message: 20/05/2006, 10h36
  4. Besoin d'aide - initialiser un bouton de commande
    Par newcal dans le forum Access
    Réponses: 2
    Dernier message: 10/02/2006, 11h02
  5. [TP]besoin d'aide pour commandes inconnues
    Par Upal dans le forum Turbo Pascal
    Réponses: 15
    Dernier message: 03/10/2002, 10h48

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