Maison >développement back-end >Golang >Comment gérer correctement les caractères de nouvelle ligne littéraux et réels dans la sortie « exec.Command » de Go ?

Comment gérer correctement les caractères de nouvelle ligne littéraux et réels dans la sortie « exec.Command » de Go ?

Linda Hamilton
Linda Hamiltonoriginal
2024-12-05 08:31:15410parcourir

How to Properly Handle Literal and Actual Newline Characters in Go's `exec.Command` Output?

Gestion des caractères de nouvelle ligne en Go Lang

En langage Go, la pratique courante pour lire les sorties de commande consiste à utiliser exec.Command. Cependant, faire la différence entre les caractères de nouvelle ligne littéraux ("n") et les sauts de ligne réels peut être délicat lorsque l'on travaille avec des tranches d'octets.

Pour clarifier, une nouvelle ligne "littérale" est "n" contenu dans une chaîne, tandis qu'un Le « vrai » saut de ligne est une séquence de nouvelle ligne se produisant naturellement dans la chaîne. Par exemple :

Print first result: "123;\n234;\n"
Print second result: "456;\n"

Ici, le premier résultat contient trois lignes, tandis que le deuxième résultat ne contient qu'une seule ligne.

Lors de l'utilisation de méthodes telles que strings.Split ou bufio.NewScanner, elles peuvent ne fait pas la différence entre ces types de nouvelles lignes. Pour résoudre ce problème, vous pouvez utiliser l'approche suivante :

replacedStr := strings.Replace(output, `\n`, "\n", -1)
processedLines := strings.Split(replacedStr, "\n")

Dans cette approche, strings.Replace identifie les caractères de nouvelle ligne littéraux ("n") et les remplace par de vrais caractères de nouvelle ligne ("n"). La chaîne résultante replaceStr contient désormais de véritables sauts de ligne. Par la suite, strings.Split peut désormais diviser correctement la chaîne en lignes.

Cette méthode garantit une gestion appropriée des nouvelles lignes littérales et des sauts de ligne réels, permettant un traitement précis ligne par ligne des données souhaitées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Calculatrice Backend-API In GoArticle suivant:Calculatrice Backend-API In Go