Chercher un motif dans une ligne et le recopier a la fin de cette meme ligne
Résolu/Fermé
Cobalt2225
Messages postés
19
Date d'inscription
mardi 18 septembre 2018
Statut
Membre
Dernière intervention
11 décembre 2018
-
Modifié le 10 déc. 2018 à 11:06
UnGnU Messages postés 1158 Date d'inscription lundi 2 mai 2016 Statut Contributeur Dernière intervention 22 décembre 2020 - 11 déc. 2018 à 11:46
UnGnU Messages postés 1158 Date d'inscription lundi 2 mai 2016 Statut Contributeur Dernière intervention 22 décembre 2020 - 11 déc. 2018 à 11:46
A voir également:
- Chercher un motif dans une ligne et le recopier a la fin de cette meme ligne
- Aller à la ligne excel - Guide
- Partage de photos en ligne - Guide
- Site de vente en ligne particulier - Guide
- Apparaitre hors ligne instagram - Guide
- Gps hors ligne - Guide
3 réponses
UnGnU
Messages postés
1158
Date d'inscription
lundi 2 mai 2016
Statut
Contributeur
Dernière intervention
22 décembre 2020
157
10 déc. 2018 à 13:10
10 déc. 2018 à 13:10
Cobalt2225
Messages postés
19
Date d'inscription
mardi 18 septembre 2018
Statut
Membre
Dernière intervention
11 décembre 2018
10 déc. 2018 à 13:15
10 déc. 2018 à 13:15
Salut UnGnU,
Sache que lapiel me pourri systématiquement tous les posts que je fais avec des réponses a la con.
Donc, tres clairement, il me tape sur le systeme.
Je ne prends donc plus de gants avec cet abruti, j'en ai déja pris pas mal dans mes précedents posts.
D'ailleurs, tous ses messages ont éte retriré par le moderateur.
Sache que lapiel me pourri systématiquement tous les posts que je fais avec des réponses a la con.
Donc, tres clairement, il me tape sur le systeme.
Je ne prends donc plus de gants avec cet abruti, j'en ai déja pris pas mal dans mes précedents posts.
D'ailleurs, tous ses messages ont éte retriré par le moderateur.
Cobalt2225
Messages postés
19
Date d'inscription
mardi 18 septembre 2018
Statut
Membre
Dernière intervention
11 décembre 2018
10 déc. 2018 à 14:46
10 déc. 2018 à 14:46
Bon, ben, pour la postérité... mon probléme est résolu ...
je poste la soluce quand même pour quelqu'un qui galererai aussi.
Cette soluce fonctionne sur un fichier dont le noombre de caractere sur une ligne specifique est toujours le meme, ce qui est le cas pour moi.
sed -i '/^.\{11\}84/ s/\(^.\{35\}\)\([0-9]\{10\}\){\(.\{90\}\)/\1\2{\3\2A/g' monfic.txt
en gros, cette commande rajoute, uniquement dans la ligne qui commence par 11 caracteres quelconque suivi de 84, le motif specifique constitué de 10 Nombres -- \([0-9]\{10\}\) -- et du caractére "{" situé a lémplacement 35 de la ligne, elle rajoute donc ce meme nombre en fin de ligne, en substituant le "{" par un "A" ... ce que je voulais faire.
J'etais un peu en galere avec le saut de ligne, mais j'ai contourné le probleme car je connaissais la longeur exacte de ma ligne ... ce qui m'a permis de résoudre mon probléme.
Pour info, ceux qui n'ont rien a apporter a une discussion devraient franchement se taire.
Merci pour vos non réponses.
je poste la soluce quand même pour quelqu'un qui galererai aussi.
Cette soluce fonctionne sur un fichier dont le noombre de caractere sur une ligne specifique est toujours le meme, ce qui est le cas pour moi.
sed -i '/^.\{11\}84/ s/\(^.\{35\}\)\([0-9]\{10\}\){\(.\{90\}\)/\1\2{\3\2A/g' monfic.txt
en gros, cette commande rajoute, uniquement dans la ligne qui commence par 11 caracteres quelconque suivi de 84, le motif specifique constitué de 10 Nombres -- \([0-9]\{10\}\) -- et du caractére "{" situé a lémplacement 35 de la ligne, elle rajoute donc ce meme nombre en fin de ligne, en substituant le "{" par un "A" ... ce que je voulais faire.
J'etais un peu en galere avec le saut de ligne, mais j'ai contourné le probleme car je connaissais la longeur exacte de ma ligne ... ce qui m'a permis de résoudre mon probléme.
Pour info, ceux qui n'ont rien a apporter a une discussion devraient franchement se taire.
Merci pour vos non réponses.
Cobalt2225
Messages postés
19
Date d'inscription
mardi 18 septembre 2018
Statut
Membre
Dernière intervention
11 décembre 2018
>
Utilisateur anonyme
10 déc. 2018 à 15:24
10 déc. 2018 à 15:24
en réalité, le pattern etait une copie sans nettoyage d'un pattern un peu plus complexe ou les parentheses avaient leur interet : (patterns=^.\{11\}\(01\|06\|24\|84\))
Mais franchement, meme si les parentheses etaient inutiles, elles ne nuisent pas au résultat.
La, tu n'apporte aucune solution, tu me prends pour un c*n ... quand tu apporte une solution, c'est que je l'ai deja. Bref, hors sujet complet.
Par ailleurs, la réponse que tu apporte, une fois le sujet déja résolu, est mauvaise, car le pattern est recopié sur une nouvelle ligne ... erreur que j'ai eu toute la matinée...
Mais merci quand meme, cette response est la moins mauvaises de toutes.
++
Mais franchement, meme si les parentheses etaient inutiles, elles ne nuisent pas au résultat.
La, tu n'apporte aucune solution, tu me prends pour un c*n ... quand tu apporte une solution, c'est que je l'ai deja. Bref, hors sujet complet.
Par ailleurs, la réponse que tu apporte, une fois le sujet déja résolu, est mauvaise, car le pattern est recopié sur une nouvelle ligne ... erreur que j'ai eu toute la matinée...
Mais merci quand meme, cette response est la moins mauvaises de toutes.
++
Utilisateur anonyme
>
Cobalt2225
Messages postés
19
Date d'inscription
mardi 18 septembre 2018
Statut
Membre
Dernière intervention
11 décembre 2018
Modifié le 10 déc. 2018 à 17:27
Modifié le 10 déc. 2018 à 17:27
mékeskidi ?
$ fichier ()si tu ne donnes pas toutes les informations, tu n'auras pas toute la réponse !
{
echo "BFH0000000101SHJALL220PROD1811040615BH000155
BKT0000000406000001 006160 SABR160ZEOCYHNXHD
BKS00000005241811030000011602968945217 3VVVV 07200034 CANX 0000
BKP0000000884181103000001VD 0000000000{ 0000000000000000{
BKT0000001006000002 011071 SABR
BKS00000011241811030000020712968945218 5FVVV 07200034 TKTT0000
BKP0000002084181103000002CA 0000008470{ 0000000000008470{
BKT0000002106000003 013176 SABR"
}
$ fichier | sed '/^.\{11\}84/s/^.\{28\}\(.\{11\}\).*/& \1 # où le pattern est sur une nouvelle ligne ?/'
BFH0000000101SHJALL220PROD1811040615BH000155
BKT0000000406000001 006160 SABR160ZEOCYHNXHD
BKS00000005241811030000011602968945217 3VVVV 07200034 CANX 0000
BKP0000000884181103000001VD 0000000000{ 0000000000000000{ 0000000000{ # où le pattern est sur une nouvelle ligne ?
BKT0000001006000002 011071 SABR
BKS00000011241811030000020712968945218 5FVVV 07200034 TKTT0000
BKP0000002084181103000002CA 0000008470{ 0000000000008470{ 0000008470{ # où le pattern est sur une nouvelle ligne ?
BKT0000002106000003 013176 SABR
Cobalt2225
Messages postés
19
Date d'inscription
mardi 18 septembre 2018
Statut
Membre
Dernière intervention
11 décembre 2018
>
Utilisateur anonyme
11 déc. 2018 à 09:12
11 déc. 2018 à 09:12
A la fois, si tu sais pas lire :
Alors, je dois recopier la chaine qui commence a la position 36 de cette ligne et qui fait 11 caracteres a la fin de cette meme ligne.
UnGnU, lui, il avait compris, c'est la difference.
Par mes posts, je ne souhaite vraiment pas te faire perdre ton temps.
Si tu ne sais pas, si tu ne veux pas ou si tu n'as pas le temps de répondre, alors tu laisse tomber le post.
Par contre, quand tu commence a faire des commentaires désobligeant pour te la jouer "sachant" et ne pas faire avancer d'un chouia le sujet, la, tu dépasse les bornes.
Et comme jusqu'ici, a chacun de mes trois posts, tu as fais la meme chose, a moment, je te dis : STOP.
Prends exemple sur UnGnU, lui, il a pas vraiment compris le pourquoi de ma réaction avec toi, mais lui, quand il répond, il est courtois et précis dans ses réponses. Tu as bcp a apprendre de lui jeune padawan...
Alors, je dois recopier la chaine qui commence a la position 36 de cette ligne et qui fait 11 caracteres a la fin de cette meme ligne.
UnGnU, lui, il avait compris, c'est la difference.
Par mes posts, je ne souhaite vraiment pas te faire perdre ton temps.
Si tu ne sais pas, si tu ne veux pas ou si tu n'as pas le temps de répondre, alors tu laisse tomber le post.
Par contre, quand tu commence a faire des commentaires désobligeant pour te la jouer "sachant" et ne pas faire avancer d'un chouia le sujet, la, tu dépasse les bornes.
Et comme jusqu'ici, a chacun de mes trois posts, tu as fais la meme chose, a moment, je te dis : STOP.
Prends exemple sur UnGnU, lui, il a pas vraiment compris le pourquoi de ma réaction avec toi, mais lui, quand il répond, il est courtois et précis dans ses réponses. Tu as bcp a apprendre de lui jeune padawan...
Cobalt2225
Messages postés
19
Date d'inscription
mardi 18 septembre 2018
Statut
Membre
Dernière intervention
11 décembre 2018
>
Utilisateur anonyme
Modifié le 11 déc. 2018 à 09:25
Modifié le 11 déc. 2018 à 09:25
et sinon, je te confirme bien que ta commande :
sed -i '/^.\{11\}84/ s/^.\{35\}\([0-9]\{10\}\).*/&\1/' temp2.txt
retourne bien le paterne sur une nouvelle ligne dans mon fichier ... (j'utilise sed sous cygwin ... je ne sais pas si ca peut faire la difference, mais pour moi, ca ne marche pas.
![](https://img-19.ccm2.net/HSV1eIOEdwtEHqZ2W_DONtSHNWQ=/440x/2589e30c929947028e4ccf7201c250e5/ccm-ugc/Untitled.png)
Mais comme j'ai une autre commande qui marche, c'est tout bon, j'ai noté le post en résolu ... donc, pas la peine de se prendre plus la tete ;-)
sed -i '/^.\{11\}84/ s/^.\{35\}\([0-9]\{10\}\).*/&\1/' temp2.txt
retourne bien le paterne sur une nouvelle ligne dans mon fichier ... (j'utilise sed sous cygwin ... je ne sais pas si ca peut faire la difference, mais pour moi, ca ne marche pas.
![](https://img-19.ccm2.net/HSV1eIOEdwtEHqZ2W_DONtSHNWQ=/440x/2589e30c929947028e4ccf7201c250e5/ccm-ugc/Untitled.png)
Mais comme j'ai une autre commande qui marche, c'est tout bon, j'ai noté le post en résolu ... donc, pas la peine de se prendre plus la tete ;-)