Concaténer en shell
Résolu
sebcah
-
sebcah Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
sebcah Messages postés 2 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je souhaitais savoir comment faire pour transformer le fichier liste.txt suivant :
antony;034;
antony sud;034;
paris;075;
antony;034;
massy;091;
savigny;034;
en
antony / antony sud / savigny;034
paris;075;
massy;091;
Ainsi il faut :
-supprimer les doublons
-mettre à la suite les villes ayant même numéro en rajoutant le numéro à la fin :D
Merci du coup de main ;)
Seb
je souhaitais savoir comment faire pour transformer le fichier liste.txt suivant :
antony;034;
antony sud;034;
paris;075;
antony;034;
massy;091;
savigny;034;
en
antony / antony sud / savigny;034
paris;075;
massy;091;
Ainsi il faut :
-supprimer les doublons
-mettre à la suite les villes ayant même numéro en rajoutant le numéro à la fin :D
Merci du coup de main ;)
Seb
A voir également:
- Concaténer en shell
- Classic shell - Télécharger - Personnalisation
- Concatener deux cellules excel - Guide
- Excel concatener retour à la ligne - Forum Programmation
- Inverse de concatener excel ✓ - Forum Excel
- Concatener ✓ - Forum Excel
5 réponses
Salut,
Une autre solution à base de "sed" :
Une autre solution à base de "sed" :
[tmpfs]$ cat data.txt antony;034; antony sud;034; paris;075; antony;034; massy;091; savigny;034; [tmpfs]$ cat le_script.sh #! /bin/bash sort -u data.txt | sort -n -t";" +1 > fich var=$(sort -u data.txt | sort -n -t";" +1 -u | cut -d";" -f2) while read line; do sed -i ' /'"${line}"';$/{ :z N /'"${line}"';$/{ s/\n// tz } s/;'"${line}"';\b/ \/ /g } ' fich; done <<<"$var" [tmpfs]$ ./le_script.sh [tmpfs]$ cat fich antony / antony sud / savigny;034; paris;075; massy;091; [tmpfs]$;-))
Excuse mon indiscrétion, mais comment ça se fait que tu ne postes pas avec l'OS sur lequel tu travailles?
Si c'est un exercice de cours, je pense que personne ne va t'aider, le but est que tu cherches toi-même ^^
Si c'est un exercice de cours, je pense que personne ne va t'aider, le but est que tu cherches toi-même ^^
lol oki.
Je disais ça parce que y'a des tas de glandeurs qui ont un exo de cours, et plutôt que de passer 10 min à DL un Live CD et chercher eux-même, ils viennent faire faire leur exo sur CCM..
Ce qui n'est pas ton cas ^^
T'es pas obligé de programmer en shell donc, c'est langage libre tant que ça marche?
Je disais ça parce que y'a des tas de glandeurs qui ont un exo de cours, et plutôt que de passer 10 min à DL un Live CD et chercher eux-même, ils viennent faire faire leur exo sur CCM..
Ce qui n'est pas ton cas ^^
T'es pas obligé de programmer en shell donc, c'est langage libre tant que ça marche?
Solution vite faite à améliorer, débuguer:
Bon amusement...
root@osiris ~/src/bash $ cat data.txt antony;034; antony sud;034; paris;075; antony;034; massy;091; savigny;034; root@osiris ~/src/bash $ cat villes.sh #!/bin/bash sort data.txt | uniq | awk 'BEGIN{FS=";"} {gsub("^0", "" ,$2); numdep = $2 ; res[numdep] = res[numdep] "/" $1; } END {for (i=33; i<91; i++) {printf( "%03d %s\n", i, res[i]);} } '
Bon amusement...
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question