Concatener chaines d'un texte
Résolu/Fermé
seb75
Messages postés
20
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
25 mars 2008
-
23 mars 2008 à 10:02
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 23 mars 2008 à 12:47
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 - 23 mars 2008 à 12:47
A voir également:
- Concatener chaines d'un texte
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Excel cellule couleur si condition texte - Guide
- Transcription audio en texte word gratuit - Guide
- Concatener deux cellules excel - Guide
- Mettre un texte en majuscule - Guide
13 réponses
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
23 mars 2008 à 10:51
23 mars 2008 à 10:51
Salut,
C'est plus complexe que tu ne le crois ton affaire ;-((
Mais il y a une solution avec "sed" (voir à ce sujet SED - The Stream EDitor - Part III - Étiquettes, boucles et mémoires tampons), et en voici une adaptation à ton cas :
C'est plus complexe que tu ne le crois ton affaire ;-((
Mais il y a une solution avec "sed" (voir à ce sujet SED - The Stream EDitor - Part III - Étiquettes, boucles et mémoires tampons), et en voici une adaptation à ton cas :
[jp@MDK-2008 trash]$ cat plop <bonjour allez <vous bien <oui je vais bien merci [jp@MDK-2008 trash]$ sed -n ' :no /^</!{ 1!H 1h x s/\n/ /g x $b der d } /^</{ x /^$/!p $b der d b no } :der ' plop > fichier.txt [jp@MDK-2008 trash]$ cat fichier.txt <bonjour allez <vous bien <oui je vais bien merci [jp@MDK-2008 trash]$;-))
piopicolo
Messages postés
1395
Date d'inscription
mercredi 21 mars 2007
Statut
Membre
Dernière intervention
31 juillet 2023
193
23 mars 2008 à 10:09
23 mars 2008 à 10:09
ton problème c'est que pour avoir le résultat tu dois connaitre le résultat. çà ne peut pas marcher.
je m'explique : tu veux écrire "comment çà va" avec des phrases déjà construite comprenant les mêmes mots donc c'est inutile car tu connais ce que tu veux écrire et si tu écris à partir de phrase au hasard tu auras n'importe quoi! Bref, expliques un peu mieux ton problème et ce que tu veux résoudre!
A+
je m'explique : tu veux écrire "comment çà va" avec des phrases déjà construite comprenant les mêmes mots donc c'est inutile car tu connais ce que tu veux écrire et si tu écris à partir de phrase au hasard tu auras n'importe quoi! Bref, expliques un peu mieux ton problème et ce que tu veux résoudre!
A+
Je n'ai pas trop compris ta réponse mais je vais tenter de me réexpliquer.
J'ai le fichier SEB.TXT suivant :
<bonjour
allez
<vous bien
<oui
je vais bien
merci
Je souhaite obtenir (dans un fichier TOTO.TXT)
<bonjour allez
<vous bien
<oui je vais bien merci
J'ai le fichier SEB.TXT suivant :
<bonjour
allez
<vous bien
<oui
je vais bien
merci
Je souhaite obtenir (dans un fichier TOTO.TXT)
<bonjour allez
<vous bien
<oui je vais bien merci
piopicolo
Messages postés
1395
Date d'inscription
mercredi 21 mars 2007
Statut
Membre
Dernière intervention
31 juillet 2023
193
23 mars 2008 à 10:32
23 mars 2008 à 10:32
Je ne comprends toujours pas ! tu connais ce que tu veux obtenir DONC il n'y a pas de problème !!! Si tu dois trier des phrases ou les mettre selon un ordre précis y a des tas de moyens.
Mais là je ne saisis pas ce que tu veux faire.
Si tu veux seulement concatener les phrases reçues sans la première lettre (a ou >) c'est pas sorcier mais si tu dois les trier avant tu dois bien connaitre ce que tu veux obtenir !
A+
Mais là je ne saisis pas ce que tu veux faire.
Si tu veux seulement concatener les phrases reçues sans la première lettre (a ou >) c'est pas sorcier mais si tu dois les trier avant tu dois bien connaitre ce que tu veux obtenir !
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
je veux concatener une chaine n'ayant pas "a" comme premier caractere avec la chaine précédente.
je sais que ce n'est pas sorcier mais je n'y arrive pas !
Merci de ton aide
je sais que ce n'est pas sorcier mais je n'y arrive pas !
Merci de ton aide
piopicolo
Messages postés
1395
Date d'inscription
mercredi 21 mars 2007
Statut
Membre
Dernière intervention
31 juillet 2023
193
23 mars 2008 à 10:42
23 mars 2008 à 10:42
tu mets chaque phrase reçue dans un tableau déclaré en texte. Chaque cellule du tableau doit être dimensionnée au maximum de charactères éstimés reçus (100). tu dimensionnes le tableau pour ce que tu veux recevoir et lorsqu'il est plein tu concatenes toute les cellules du tableau (ou avant)
Après tu le réinitialises à 0.
A+
Après tu le réinitialises à 0.
A+
piopicolo
Messages postés
1395
Date d'inscription
mercredi 21 mars 2007
Statut
Membre
Dernière intervention
31 juillet 2023
193
23 mars 2008 à 10:45
23 mars 2008 à 10:45
comme tu va concatener les lignes de caractères (100) ayant plein de blanc ou de 0.
Avant écriture du texte final, tu fais une boucle pour enlever tous les blancs ou zéros superflus (blanc >1)
A+
Avant écriture du texte final, tu fais une boucle pour enlever tous les blancs ou zéros superflus (blanc >1)
A+
Merci, mais je voyais plus quelque chose comme ça:
${ligne1}=" "
while read ligne
do
if [ "${ligne::1}" != "a" ]
then
(${ligne}${ligne1}) >> TOTO.TXT
${ligne1}=${ligne}
else
${ligne}>>TOTO.TXT
fi
done < SEB.TXT
Parce que comme je l'ai dit, je suis débutant et je ne réussirai pas à faire ce que tu m'as dis (je ne sais meme pas faire un tableau...)
Merci beaucoup pour ton idée en tout cas.
${ligne1}=" "
while read ligne
do
if [ "${ligne::1}" != "a" ]
then
(${ligne}${ligne1}) >> TOTO.TXT
${ligne1}=${ligne}
else
${ligne}>>TOTO.TXT
fi
done < SEB.TXT
Parce que comme je l'ai dit, je suis débutant et je ne réussirai pas à faire ce que tu m'as dis (je ne sais meme pas faire un tableau...)
Merci beaucoup pour ton idée en tout cas.
seb75
Messages postés
20
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
25 mars 2008
23 mars 2008 à 11:06
23 mars 2008 à 11:06
Merci Jipicy !!
ca marche très bien, à l'exception que ca ne m'affiche pas la dernière chaine (<merci) lorsque j'ai :
<bonjour
allez
<vous bien
<oui
je vais bien
<merci
au lieu de :
<bonjour
allez
<vous bien
<oui
je vais bien
merci
ca marche très bien, à l'exception que ca ne m'affiche pas la dernière chaine (<merci) lorsque j'ai :
<bonjour
allez
<vous bien
<oui
je vais bien
<merci
au lieu de :
<bonjour
allez
<vous bien
<oui
je vais bien
merci
jipicy
Messages postés
40842
Date d'inscription
jeudi 28 août 2003
Statut
Modérateur
Dernière intervention
10 août 2020
4 897
23 mars 2008 à 11:16
23 mars 2008 à 11:16
[jp@MDK-2008 trash]$ cat plop <bonjour allez <vous bien <oui je vais bien <merci [jp@MDK-2008 trash]$ sed -n ' :no /^</!{ 1!H 1h x s/\n/ /g x $b der d } /^</{ x /^$/!p $b der d b no } :der ' plop > fichier.txt [jp@MDK-2008 trash]$ cat fichier.txt <bonjour allez <vous bien <oui je vais bien <merci [jp@MDK-2008 trash]$Ben ça marche aussi, non ?
seb75
Messages postés
20
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
25 mars 2008
23 mars 2008 à 11:23
23 mars 2008 à 11:23
autant pour moi,
ca marche à merveille !
Merci Jipicy
ca marche à merveille !
Merci Jipicy
seb75
Messages postés
20
Date d'inscription
dimanche 2 mars 2008
Statut
Membre
Dernière intervention
25 mars 2008
23 mars 2008 à 11:23
23 mars 2008 à 11:23
autant pour moi,
ca marche à merveille !
Merci Jipicy
ca marche à merveille !
Merci Jipicy
lami20j
Messages postés
21331
Date d'inscription
jeudi 4 novembre 2004
Statut
Modérateur, Contributeur sécurité
Dernière intervention
30 octobre 2019
3 569
23 mars 2008 à 12:47
23 mars 2008 à 12:47
Salut,
C'est plus complexe que tu ne le crois ton affaire ;-((
En effet ;-)
Voici une solution Perl avec un test avant positif ;-)
C'est plus complexe que tu ne le crois ton affaire ;-((
En effet ;-)
Voici une solution Perl avec un test avant positif ;-)
lami20j@debian:~/trash$ cat seb75 <bonjour allez <vous bien <oui je vais bien merci lami20j@debian:~/trash$ perl -e '$l=`cat seb75`;$l=~s/\n(?=^\w)/ /mg;print $l' <bonjour allez <vous bien <oui je vais bien merci