Insérrer un retour ligne tous les 6 "

Résolu/Fermé
jeremyp3 Messages postés 22 Date d'inscription lundi 13 avril 2009 Statut Membre Dernière intervention 5 mars 2020 - Modifié par jeremyp3 le 12/10/2016 à 08:05
jeremyp3 Messages postés 22 Date d'inscription lundi 13 avril 2009 Statut Membre Dernière intervention 5 mars 2020 - 13 oct. 2016 à 09:56
Bonjour,

j'aimerai faire un truc simple, mais visiblement, c'est plus compliqué que je ne le crois ...

mon but est d’insérer un retour ligne tout les 6 guillemet.

mon fichier original ressemble a ça:

val1: "1" val2: "2" val3: "3" val4: "4" val5: "5" val6: "6" ....

ce que j'aimerai:

val1: "1" val2: "2" val3: "3"
val4: "4" val5: "5" val6: "6"

en sachant que je me base sur le 6ème guillemet parce que le contenue des valeurs peuvent changer

j'ai essayé toute sorte de choses avec sed sans obtenir le résultat voulu ...

merci pour votre aide

jerem
A voir également:

5 réponses

dubcek Messages postés 18756 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 18 décembre 2024 5 623
12 oct. 2016 à 09:06
hello
$ sed 's/" */"\n/6' fichier
val1: "1" val2: "2" val3: "3"
val4: "4" val5: "5" val6: "6" ....
2
jeremyp3 Messages postés 22 Date d'inscription lundi 13 avril 2009 Statut Membre Dernière intervention 5 mars 2020
Modifié par jeremyp3 le 12/10/2016 à 18:42
bonjour,

oui, mais non. du coup, je complète mon fichier

mon fichier original ressemble a ça:

val1: "1" val2: "2" val3: "3" val4: "4" val5: "5" val6: "6" val7: "7" val8: "8" val9: "9" ....

ce que j'aimerai:

val1: "1" val2: "2" val3: "3"
val4: "4" val5: "5" val6: "6"
val7: "7" val8: "8" val9: "9"

le "tous les 6 guillemets" était important ...

merci beaucoup !

jerem
0
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 419
12 oct. 2016 à 20:34
Salut,
le "tous les 6 guillemets" était important ...
Non, ce qui est important c'est la clarté de l'énoncé avant tout et des exemples concrets eux aussi (AVANT => APRÉS) ;-\

$ cat fich 
val1: "1" val2: "2" val3: "3" val4: "4" val5: "5" val6: "6" val7: "7" val8: "8" val9: "9"

$ sed 's/\([^ ]* \)\{6\}/&\n/g' fich
val1: "1" val2: "2" val3: "3"
val4: "4" val5: "5" val6: "6"
val7: "7" val8: "8" val9: "9"

0
jeremyp3 Messages postés 22 Date d'inscription lundi 13 avril 2009 Statut Membre Dernière intervention 5 mars 2020
13 oct. 2016 à 00:42
merci, mais ça ne fonctionne pas dans mon fichier original ...

il n'est pas possible de ce baser sur les guillemets que sur les espace qui peuvent changer ?

jerem
0
UnGnU Messages postés 1158 Date d'inscription lundi 2 mai 2016 Statut Contributeur Dernière intervention 22 décembre 2020 157
13 oct. 2016 à 08:54
Salut,
mais ça ne fonctionne pas dans mon fichier original ...
Merci de relire le post de zipe31, où il est bien spécifié :

ce qui est important c'est la clarté de l'énoncé avant tout et des exemples concrets eux aussi (AVANT => APRÉS)

Donc, plutôt que de nous faire perdre notre temps avec des bribes d'explications (et d'exemples foireux) à chaque fois, poste une copie (modifiée si tu veux) mais exacte au point de vue formatage de ton fichier original !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jeremyp3 Messages postés 22 Date d'inscription lundi 13 avril 2009 Statut Membre Dernière intervention 5 mars 2020
Modifié par jeremyp3 le 13/10/2016 à 09:34
bonjour,


en réalité ce que je demande c'est simple.

peu-t-on avec sed ou tout autre outils faire un interligne (\n) tous les 6 " ?

au vu de la réponse de zipe31 je suppose que ce n'est pas possible vu qu'il a pris les espaces au lieu des guillemets.

une partie de mon fichier original: (je précise qu'il est tronqué mais que ça continue tout sur une ligne dans le même principe...

ville1 url_hd_aac: "" url_64k_aac: "http://" url_128k_mp3: "" ville2 url_hd_aac: "" url_64k_aac: "http://" url_128k_mp3: "" ville3 url_hd_aac: "" url_64k_aac: "http://" url_128k_mp3: "" ville4 url_hd_aac: "" url_64k_aac: "http://" url_128k_mp3: ""

ce que je souhaite obtenir:

ville1 url_hd_aac: "" url_64k_aac: "http://" url_128k_mp3: ""
ville2 url_hd_aac: "" url_64k_aac: "http://" url_128k_mp3: ""
ville3 url_hd_aac: "" url_64k_aac: "http://" url_128k_mp3: ""
ville4 url_hd_aac: "" url_64k_aac: "http://" url_128k_mp3: ""

Par ailleurs, je pensais me baser sur le url_128k_mp3: "" mais il peut y avoir une valeur dans les guillemets de ce dernier. voilà pourquoi j'insiste sur mon 6 guillemets.... parce que ça, ça ne change jamais, tout le long du dit fichier

jerem, qui est désolé de vous faire perdre votre temps ...
0
UnGnU Messages postés 1158 Date d'inscription lundi 2 mai 2016 Statut Contributeur Dernière intervention 22 décembre 2020 157
13 oct. 2016 à 09:49
$ cat fich
ville1 url_hd_aac: "" url_64k_aac: "http://" url_128k_mp3: "" ville2 url_hd_aac: "" url_64k_aac: "http://" url_128k_mp3: "" ville3 url_hd_aac: "" url_64k_aac: "http://" url_128k_mp3: "" ville4 url_hd_aac: "" url_64k_aac: "http://" url_128k_mp3: ""

$ sed 's/\([^"]*" *\)\{6\}/&\n/g' fich
ville1 url_hd_aac: "" url_64k_aac: "http://" url_128k_mp3: ""
ville2 url_hd_aac: "" url_64k_aac: "http://" url_128k_mp3: ""
ville3 url_hd_aac: "" url_64k_aac: "http://" url_128k_mp3: ""
ville4 url_hd_aac: "" url_64k_aac: "http://" url_128k_mp3: ""
0
jeremyp3 Messages postés 22 Date d'inscription lundi 13 avril 2009 Statut Membre Dernière intervention 5 mars 2020 > UnGnU Messages postés 1158 Date d'inscription lundi 2 mai 2016 Statut Contributeur Dernière intervention 22 décembre 2020
13 oct. 2016 à 09:56
bonjour,

merci, ça fonctionne.

pourriez-vous expliquer en quelques mots la commande sed ?

sed 's/\([^"]*" *\)\{6\}/&\n/g'

je vous remercie !

jerem
0