et n'afficher que les ligne uniques d'apres le premier champ avec: sort -u -t: -k1
cela m'affiche le resultat suivant: a:a a:c
l'option -u semble donc comparer les lignes entres elles et non les champs selectionnés
est-ce exact ?
sans doute.
tu as la commande uniq pour faire ce que tu souhaites.
-- DINH V. Hoa,
- "Tiens, tu te rappliques avec l'Ibanez ?" - "Mais vous allez faire quoi avec de la libanaise ?" -- Elodie
fredatwork
"DINH Viêt Hoà" a écrit dans le message news:
tu as la commande uniq pour faire ce que tu souhaites.
Je suis curieux de voir la solution que tu proposes avec uniq ( en évitant les choses genre : sort -t: -k1 nom_fichier | rev | tr -s : ' ' | uniq -1 | tr -s ' ' : | rev ce qui est d'ailleurs valide uniquement si le nombre de champs est le même pour chaque ligne et si le fichier en entrée ne comporte aucun espace ni aucune tabulation, sinon il faut encore ajouter des tr. )
"DINH Viêt Hoà" <dinh.viet.hoa@free.fr> a écrit dans le message news:
etPan.4163a0a5.6478a48c.105e@utopia...
tu as la commande uniq pour faire ce que tu souhaites.
Je suis curieux de voir la solution que tu proposes avec uniq
( en évitant les choses genre :
sort -t: -k1 nom_fichier | rev | tr -s : ' ' | uniq -1 | tr -s ' ' : | rev
ce qui est d'ailleurs valide uniquement si le nombre de champs est le même
pour chaque ligne
et si le fichier en entrée ne comporte aucun espace ni aucune tabulation,
sinon il faut encore ajouter des tr.
)
tu as la commande uniq pour faire ce que tu souhaites.
Je suis curieux de voir la solution que tu proposes avec uniq ( en évitant les choses genre : sort -t: -k1 nom_fichier | rev | tr -s : ' ' | uniq -1 | tr -s ' ' : | rev ce qui est d'ailleurs valide uniquement si le nombre de champs est le même pour chaque ligne et si le fichier en entrée ne comporte aucun espace ni aucune tabulation, sinon il faut encore ajouter des tr. )
Je suis curieux de voir la solution que tu proposes avec uniq ( en évitant les choses genre : sort -t: -k1 nom_fichier | rev | tr -s : ' ' | uniq -1 | tr -s ' ' : | rev ce qui est d'ailleurs valide uniquement si le nombre de champs est le même pour chaque ligne et si le fichier en entrée ne comporte aucun espace ni aucune tabulation, sinon il faut encore ajouter des tr. )
par contre, ça ne marche qu'avec le gnu uniq :
sort -t:1 -k1 | uniq -t: -W 1
-- DINH V. Hoa,
- "Tiens, tu te rappliques avec l'Ibanez ?" - "Mais vous allez faire quoi avec de la libanaise ?" -- Elodie
Je suis curieux de voir la solution que tu proposes avec uniq
( en évitant les choses genre :
sort -t: -k1 nom_fichier | rev | tr -s : ' ' | uniq -1 | tr -s ' ' : | rev
ce qui est d'ailleurs valide uniquement si le nombre de champs est le même
pour chaque ligne
et si le fichier en entrée ne comporte aucun espace ni aucune tabulation,
sinon il faut encore ajouter des tr.
)
par contre, ça ne marche qu'avec le gnu uniq :
sort -t:1 -k1 | uniq -t: -W 1
--
DINH V. Hoa,
- "Tiens, tu te rappliques avec l'Ibanez ?"
- "Mais vous allez faire quoi avec de la libanaise ?" -- Elodie
Je suis curieux de voir la solution que tu proposes avec uniq ( en évitant les choses genre : sort -t: -k1 nom_fichier | rev | tr -s : ' ' | uniq -1 | tr -s ' ' : | rev ce qui est d'ailleurs valide uniquement si le nombre de champs est le même pour chaque ligne et si le fichier en entrée ne comporte aucun espace ni aucune tabulation, sinon il faut encore ajouter des tr. )
par contre, ça ne marche qu'avec le gnu uniq :
sort -t:1 -k1 | uniq -t: -W 1
-- DINH V. Hoa,
- "Tiens, tu te rappliques avec l'Ibanez ?" - "Mais vous allez faire quoi avec de la libanaise ?" -- Elodie
Stephane Chazelas
2004-10-06, 07:48(+02), chatiman:
Bonjour,
je souhaite trier un fichier du type: a:a a:a a:c
et n'afficher que les ligne uniques d'apres le premier champ avec: sort -u -t: -k1
cela m'affiche le resultat suivant: a:a a:c
l'option -u semble donc comparer les lignes entres elles et non les champs selectionnés
est-ce exact ?
Non.
Avec -k1, sort tri a partir du premier champ, donc "a:a" est avant "a:c". Si tu veux trier de sorte que "a:a" soit exactement comme "a:c", il faut trier sur le premier champ uniquement:
sort -ut: -k1,1
-- Stephane
2004-10-06, 07:48(+02), chatiman:
Bonjour,
je souhaite trier un fichier du type:
a:a
a:a
a:c
et n'afficher que les ligne uniques d'apres le premier champ avec:
sort -u -t: -k1
cela m'affiche le resultat suivant:
a:a
a:c
l'option -u semble donc comparer les lignes entres elles et non les
champs selectionnés
est-ce exact ?
Non.
Avec -k1, sort tri a partir du premier champ, donc "a:a" est
avant "a:c". Si tu veux trier de sorte que "a:a" soit exactement
comme "a:c", il faut trier sur le premier champ uniquement:
et n'afficher que les ligne uniques d'apres le premier champ avec: sort -u -t: -k1
cela m'affiche le resultat suivant: a:a a:c
l'option -u semble donc comparer les lignes entres elles et non les champs selectionnés
est-ce exact ?
Non.
Avec -k1, sort tri a partir du premier champ, donc "a:a" est avant "a:c". Si tu veux trier de sorte que "a:a" soit exactement comme "a:c", il faut trier sur le premier champ uniquement: