Insérer caractère
Résolu/Fermé
greg11081975
Messages postés
5
Date d'inscription
mercredi 16 septembre 2020
Statut
Membre
Dernière intervention
16 septembre 2020
-
Modifié le 16 sept. 2020 à 10:36
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 16 sept. 2020 à 13:48
zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 - 16 sept. 2020 à 13:48
A voir également:
- Insérer caractère
- Caractère ascii - Guide
- Caractere speciaux - Guide
- Insérer une vidéo dans powerpoint - Guide
- Insérer signature word - Guide
- Caractère spéciaux - Guide
2 réponses
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 417
16 sept. 2020 à 10:48
16 sept. 2020 à 10:48
Salut,
On peut avoir un bout de fichier en guise d'exemple ?
On peut avoir un bout de fichier en guise d'exemple ?
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 417
16 sept. 2020 à 11:28
16 sept. 2020 à 11:28
En attendant pour répondre à ta question :
Sinon, tu n'as pas besoin de
$ echo "${A}"
aaaaaaaaaaaaAaaaaaaaaaaaa
$ sed 's/.\{12\}/&;/' <<<${A}
aaaaaaaaaaaa;Aaaaaaaaaaaaa
$ sed 's/.\{13\}/&;/' <<<${A}
aaaaaaaaaaaaA;aaaaaaaaaaaa
Sinon, tu n'as pas besoin de
catet de
tail,
sedpeut tout faire…
greg11081975
Messages postés
5
Date d'inscription
mercredi 16 septembre 2020
Statut
Membre
Dernière intervention
16 septembre 2020
16 sept. 2020 à 11:54
16 sept. 2020 à 11:54
Bonjour Zipe31 et merci de ta réponse,
le fichier ressemble à ceci
Peux-tu me dire à quoi sert le <<<${A} ?
Comment remplacerais-tu l'ensemble des commandes par sed ?
Merci de ton aide ;-)
le fichier ressemble à ceci
PARCELNO;SCAN_CODE;DEPOT_CODE;DEPOTNAME;EVENT_DATE_TIME;ROUTE;TOUR;PCODE;SERVICE;CONSIGNEE_COUNTRY_CODE;CONSIGNEE_ZIP;ADD_SERVICE_1;ADD_SERVICE_2;ADD_SERVICE_3;WEIGHT;CUSTOMER_REFERENCE;POD_IMAGE_REF;RECEIVER_NAME;INFO_TEXT;LOCATION; 05348800423004;18;0998;Depot 0998;20200901135128;0000;;01;101;000;;;;;;2586068;;;133:1;; 05348800423004;18;0998;Depot 0998;20200901135128;0000;;01;101;000;;;;;;5409239;;;133:1;;
Peux-tu me dire à quoi sert le <<<${A} ?
Comment remplacerais-tu l'ensemble des commandes par sed ?
Merci de ton aide ;-)
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 417
>
greg11081975
Messages postés
5
Date d'inscription
mercredi 16 septembre 2020
Statut
Membre
Dernière intervention
16 septembre 2020
16 sept. 2020 à 12:02
16 sept. 2020 à 12:02
$ cat f2
PARCELNO;SCAN_CODE;DEPOT_CODE;DEPOTNAME;EVENT_DATE_TIME;ROUTE;TOUR;PCODE;SERVICE;CONSIGNEE_COUNTRY_CODE;CONSIGNEE_ZIP;ADD_SERVICE_1;ADD_SERVICE_2;ADD_SERVICE_3;WEIGHT;CUSTOMER_REFERENCE;POD_IMAGE_REF;RECEIVER_NAME;INFO_TEXT;LOCATION;
05348800423004;18;0998;Depot 0998;20200901135128;0000;;01;101;000;;;;;;2586068;;;133:1;;
05348800423004;18;0998;Depot 0998;20200901135128;0000;;01;101;000;;;;;;5409239;;;133:1;;
$ sed '1n;s/;/~/g;s/.\{42\}/&;/' f2
PARCELNO;SCAN_CODE;DEPOT_CODE;DEPOTNAME;EVENT_DATE_TIME;ROUTE;TOUR;PCODE;SERVICE;CONSIGNEE_COUNTRY_CODE;CONSIGNEE_ZIP;ADD_SERVICE_1;ADD_SERVICE_2;ADD_SERVICE_3;WEIGHT;CUSTOMER_REFERENCE;POD_IMAGE_REF;RECEIVER_NAME;INFO_TEXT;LOCATION;
05348800423004~18~0998~Depot 0998~20200901;135128~0000~~01~101~000~~~~~~2586068~~~133:1~~
05348800423004~18~0998~Depot 0998~20200901;135128~0000~~01~101~000~~~~~~5409239~~~133:1~~
Peux-tu me dire à quoi sert le <<<${A} ?De la même manière qu'on peut rediriger l'entrée d'un fichier ainsi
< fichier, cette syntaxe fait la même chose mais avec le contenu d'une variable. C'était un exemple pour aller au plus pressé.
greg11081975
Messages postés
5
Date d'inscription
mercredi 16 septembre 2020
Statut
Membre
Dernière intervention
16 septembre 2020
>
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
16 sept. 2020 à 13:11
16 sept. 2020 à 13:11
ok, donc echo récupe le stdin clavier et le met dans la variable A ensuite sed fait le reste ?
Par contre je ne comprend pas ce que fait 1n --> $ sed '1n;s/;/~/g;s/.\{42\}/&;/' f2
J'ai essayé de le remplacer par 2n en pensant qu'il allait commencer à la deuxième ligne du fichier mais non...
Et surtout, encore merci pour tes lumières ;-)
Par contre je ne comprend pas ce que fait 1n --> $ sed '1n;s/;/~/g;s/.\{42\}/&;/' f2
J'ai essayé de le remplacer par 2n en pensant qu'il allait commencer à la deuxième ligne du fichier mais non...
Et surtout, encore merci pour tes lumières ;-)
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 417
>
greg11081975
Messages postés
5
Date d'inscription
mercredi 16 septembre 2020
Statut
Membre
Dernière intervention
16 septembre 2020
16 sept. 2020 à 13:20
16 sept. 2020 à 13:20
ok, donc echo récupe le stdin clavier et le met dans la variable A ensuite sed fait le reste ?Euh… non ! Je t'ai dit que ça c'était un exemple (la variable a été créée avant) pour te montrer comment insérer un caractère à la position adéquate. Ça n'a rien à voir avec ton problème.
Par contre je ne comprend pas ce que fait 1nOn demande à sed de lire la 1ère ligne, puis de passer à la ligne suivante (instruction "next" (n)). Donc les instructions qui suivent, s'appliqueront à toutes les autres lignes (sauf la 1ère).
zipe31
Messages postés
36402
Date d'inscription
dimanche 7 novembre 2010
Statut
Contributeur
Dernière intervention
27 janvier 2021
6 417
>
greg11081975
Messages postés
5
Date d'inscription
mercredi 16 septembre 2020
Statut
Membre
Dernière intervention
16 septembre 2020
16 sept. 2020 à 13:25
16 sept. 2020 à 13:25
Mea culpa ;-(
Je n'avais pas fait attention qu'il fallait sauter les 2 premières lignes.
Donc :
Je n'avais pas fait attention qu'il fallait sauter les 2 premières lignes.
Donc :
sed '2,$ s/;/~/g;s/.\{42\}/&;/' fichier
2,$on n'applique les instructions qu'après la seconde ligne (2) et ce jusqu'à la fin du fichier ($).