Utilisation de SED ou AWK pour mise en forme fichier

[Résolu/Fermé]
Signaler
Messages postés
607
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
15 octobre 2021
-
Messages postés
607
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
15 octobre 2021
-
Bonjour,

J'ai un fichier dont le contenu est le suivant :
8974561
789456123
87142655
84796


Je souhaiterais mettre en forme ce fichier de la sorte :

(8974561,789456123,87142655,84796);


Comment dois je m'y prendre avec SED ou AWK?

Merci


4 réponses

Messages postés
18288
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
16 octobre 2021
5 403
hello
$ awk -v RS="" '{gsub("\n", ","); print "(" $0 ");"}' fichier
(8974561,789456123,87142655,84796);
Messages postés
607
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
15 octobre 2021
18
Merci dubcek.

Whaoohh!! Comprends rien à la syntaxe! Je vais d'abord essayer de comprends cette syntaxe de AWK avant de l'utiliser ;-)
Messages postés
18288
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
16 octobre 2021
5 403
avec RS="", tout le fichier est mis dans $0, ensuite on remplace \n par , et on imprime; en shell :
$ t=( $(<fichier) ); tt=${t[@]}; echo "("${tt// /,}");" 
(8974561,789456123,87142655,84796);
Messages postés
36324
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 420
Salut,

$ cat plop 
8974561
789456123
87142655
84796

$ sed ':z;N;$!bz;s/\n/,/g;s/.*/(&);/' plop
(8974561,789456123,87142655,84796);


☮ Zen my nuggets ☯
Faites un geste pour l'environnement, fermez vos fenêtres et adoptez un manchot. <('')
Messages postés
607
Date d'inscription
dimanche 27 novembre 2005
Statut
Membre
Dernière intervention
15 octobre 2021
18
Merci dubcek pour les infos.

Merci zipe31 pour la syntaxe avec SED.