Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 09/06/2017, à 14:40

Hackedia

[Résolu] Récupérer du texte sans la mise en page

Bonjour à tous !

J'ai un premier script qui est formaté depuis notpad en UTF-8 sans bom, et qui est formaté au format unix (via dos2unix) : POSIX shell script text executable UTF-8 Unicode text, with escape sequences
Et j'ai aussi un fichier de log encodé en : UTF-8 Unicode text, with escape sequences

Dans le script je récupère l'intégralité du fichier de log sur une seul ligne pour faire du traitement : echo $(cat file.log).
Je me rend compte que dans le script, la variable qui récupère le log contient l'intégralité du fichier de log plus les caractères spéciaux de retour à la ligne, de mise en couleur (du style [3;31m pour la couleur rouge je crois).

Et ça pose de gros probleme, je me retrouve à devoir faire du regex pas très jolie pour enlever tout ces caractère spéciaux et c'est pas propre du tout ^^ (surtout que j'arrive pas à tout enlever).
Du coup ma question est, est-il possible de récupérer juste le texte, et pas toutes les suites de caractères de mise en page qui vont avec (retour à la ligne, tabulation, mise en couleur, etc ...) ?

Merci à vous et bonne journée,

Dernière modification par Hackedia (Le 12/06/2017, à 16:30)

Hors ligne

#2 Le 12/06/2017, à 00:11

Arbiel

Re : [Résolu] Récupérer du texte sans la mise en page

Bonsoir

Pour supprimer les caractères de contrôle qui te gênent, regarde la commande tr.

Au lieu d'écrire echo $(cat fichier), tu peux écrire directement cat fichier.

Arbiel


Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne

#3 Le 12/06/2017, à 11:35

Hackedia

Re : [Résolu] Récupérer du texte sans la mise en page

Ah oui cette commande est tres intéressante, avec l'option [:cntrl:] ça supprime les éléments que je n'arrivais pas à supprimer avec ParameterExpansion,
Autant avec un sed c'est faisable mais on me déconseille de l'utiliser car trop gourmand (il ouvre un daemon en parallèle) comparé à ParamExp, mais ce dernier utilise une syntaxe particulière pour faire du regex, et du coup j'ai du mal à m'en sortir xD, je trouve pas de doc qui détaille les arguments qu'il interprète.

En tout cas merci !

Dernière modification par Hackedia (Le 12/06/2017, à 11:42)

Hors ligne

#4 Le 12/06/2017, à 15:12

Arbiel

Re : [Résolu] Récupérer du texte sans la mise en page

Bonjour

C'est plutôt [Résolu] que l'on a l'habitude d'utiliser, alors que [Fermé] n'est pas aussi clair : un sujet peut être fermé pour de multiples raisons.


Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.

Hors ligne