|
|
|
|
lestat2008, le jeudi 3 avril 2008 à 17:33:47Configuration: sun solaris 10
Salut, [tmpfs]$ cat plop [bloc1] AA BB CC DD DD [bloc2] EE FF DD [bloc3] GG HH II DD DD [tmpfs]$ uniq plop [bloc1] AA BB CC DD [bloc2] EE FF DD [bloc3] GG HH II DD [tmpfs]$;-)) JP - Éleveur de pingouins - Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot. |
Merci pour ta réactivité mais je vais préciser encore un point qui risque de compliquer les choses, à savoir que dans ce fameux fichier, j'ai d autres lignes identiques que je ne souhaite pas supprimer or la commande uniq supprime TOUS les doublons (enfin il me semble) et je ne cherche qu'à supprimer en doublon en particulier, typiquement cela donne a peu près ça :
[bloc1] AA BB CC DD DD [bloc2] EE AA FF DD [bloc3] GG HH BB II CC DD DD donc pour être plus précis, je ne cherche qu'à supprimer les doublons du type DD et non pas tous les autres qui peuvent apparaitrent, j'espère avoir été suffisament explicite cette fois-ci, désolé. Merci d'avance. |
Je n'ai rien inventé, c'est juste une adaptation de la syntaxe trouvée dans "info sed" qui émule la fonction "uniq"...(j'ai rajouté quelques doublons au cas ou) [tmpfs]$ cat plop
[bloc1]
AA
BB
CC
CC
DD
DD
DD
[bloc2]
EE
AA
FF
FF
DD
[bloc3]
GG
HH
HH
BB
II
CC
DD
DD
DD
[tmpfs]$ sed 'h;:z;$b;N;/\(DD\)\n\1$/{g;bz};$b;P;D' plop
[bloc1]
AA
BB
CC
CC
DD
[bloc2]
EE
AA
FF
FF
DD
[bloc3]
GG
HH
HH
BB
II
CC
DD
[tmpfs]$ ;-))
JP - Éleveur de pingouins - Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot.
|
Label too long: h;:z;$b;N;/\(DD\)\n\1$/{g;bz};$b;P;D
Ça c'est bizarre dans la mesure ou le label (étiquette) ne contient qu'une lettre (z) ;-\ Quelle version de "sed" ? Concernant les explications, tu peux les trouver dans le "info sed" (si les pages infos sont installées sur ton système), sinon ça s'explique comme ça : h # mettre le contenu de l'espace de travail dans la mémoire annexe
:z # étiquette (label)
$ b # si la dernière ligne est atteinte, se brancher à la fin du script
N # ajouter la ligne suivante dans l'espace de travail
/\(DD\)\n\1$/ { # si l'espace de travail ressemble comme 2 gouttes d'eau à
#+ DD suivi d'un saut de ligne (\n) et suivi par DD (\1) est en fait la
#++ représentation de la 1ère sous-expression (\...\)
g # l'écraser en remettant le contenu de la mémoire annexe
b z # se brancher à l'étiquette "z"
} # fin du groupement de commande
$ b # si la dernière ligne est atteinte, se brancher à la fin du script
P # envoyer sur la sortie standard le contenu de l'espace de travail
#+ compris entre le début et le premier caractère représentant
#++ un saut de ligne (\n)
D # effacer le contenu de l'espace de travail
#+ compris entre le début et le premier caractère représentant
#++ un saut de ligne (\n)
JP - Éleveur de pingouins -
Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot.
|
Merci gogole ;-))
JP - Éleveur de pingouins - Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot.
|
| 23/03 20h06 | Sed - Substitution | Sed |
| 27/04 23h31 | Editer le menu contextuel | Ubuntu |
| 11/06 03h59 | Tous les scans en ligne anti-virus gratuitement | Sécurité |
| 27/04 22h16 | L'arborescence du système de fichiers de Linux | Linux |
| 15/12 16h49 | Kit de survie | Shell |
| 10/06 13h09 | [PHP] comparer ligne fichier et bdd | 5 |
| 22/01 02h42 | [UNIX] Comparaison de fichier | 3 |
| 11/04 13h41 | Insérere des lignes dans des fichiers unix | 1 |
| 12/03 19h47 | Comparer deux fichiers xml sous unix/linux | 3 |
![]() | SyncBack - SyncBack est un logiciel de synchronisation de répertoires. Il peut être utilisé: pour effectuer des backups de fichiers... | Catégorie: Sauvegarde Licence: Freeware/gratuit |
![]() | PSPad - PSPad est un excellent éditeur de texte. Il est utile pour travailler sur du simple texte, mais aussi sur du HTML, CSS,... | Catégorie: Développement Licence: Freeware/gratuit |
![]() | TextWrangler - TextWrangler est un éditeur de texte évolué. Il propose de nombreuses fonctionnalités : recherche/remplacement... | Catégorie: Traitement de texte Licence: Freeware/gratuit |
![]() | Ant Renamer - ANT Renamer permet de renommer un grand nombre de fichiers et dossiers en quelques clics. Il ne fait que modifier les noms... | Catégorie: Gestion de fichiers Licence: Freeware/gratuit |
![]() | Logitech Harmony 885 Advanced | Catégorie: Télécommande universelle | |
![]() | Univers U4113 DVB-S | Catégorie: Adaptateur TNT | 63.80 € PriceMinister |
![]() | Spongebob Squarepants & Friends | Catégorie: Jeu vidéo Gamecube | 9.60 € PriceMinister |
![]() | Saitek Pro Gamer Command | Catégorie: Joystick | 33.50 € Amazon.fr |