Différenciation des nouvelles lignes dans Go : préservation des sauts de chaîne internes
Lors de la lecture de la sortie des commandes Linux à l'aide de exec.Command, le tableau d'octets résultant peut contenir à la fois des caractères de nouvelle ligne littéraux ("n") et des nouvelles lignes échappées ("\n"). Cela peut poser un défi lorsque vous essayez de diviser la sortie en lignes tout en préservant les sauts de chaîne internes.
Une approche consiste à remplacer les nouvelles lignes échappées par de véritables nouvelles lignes en utilisant la ligne suivante :
strings.Replace(out, `\n`, "\n", -1)
Par ce faisant, nous convertissons efficacement les nouvelles lignes échappées dans leur forme originale, ce qui nous permet de diviser la sortie en lignes en utilisant des méthodes standard telles que :
lines := strings.Split(out, "\n")
Cela entraînera la sortie étant divisée en lignes, mais les sauts dans les chaînes seront conservés. Par exemple, considérons le résultat suivant :
First line: "test1" Second line: "123;\n234;\n345;" Third line: "456;\n567;" Fourth line: "test4"
Le fractionnement de ce résultat à l'aide de la technique ci-dessus entraînera les lignes suivantes :
First line: "test1" Second line: "123;\n234;\n345;" Third line: "456;\n567;" Fourth line: "test4"
Comme vous pouvez le voir, les sauts de chaîne internes sont préservé et la sortie est correctement divisée en lignes.
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!