Heim >Backend-Entwicklung >Golang >Wie behandelt man wörtliche und tatsächliche Zeilenumbrüche in der „exec.Command'-Ausgabe von Go richtig?

Wie behandelt man wörtliche und tatsächliche Zeilenumbrüche in der „exec.Command'-Ausgabe von Go richtig?

Linda Hamilton
Linda HamiltonOriginal
2024-12-05 08:31:15410Durchsuche

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

Umgang mit Zeilenumbrüchen in Go Lang

In Go Lang ist die gängige Praxis zum Lesen von Befehlsausgaben die Verwendung von exec.Command. Bei der Arbeit mit Byte-Slices kann es jedoch schwierig sein, zwischen wörtlichen Zeilenumbrüchen („n“) und tatsächlichen Zeilenumbrüchen zu unterscheiden.

Zur Verdeutlichung: Ein „wörtlicher“ Zeilenumbruch ist „n“, das in einer Zeichenfolge enthalten ist, während a Ein „echter“ Zeilenumbruch ist eine Zeilenumbruchsequenz, die natürlicherweise in der Zeichenfolge vorkommt. Zum Beispiel:

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

Hier enthält das erste Ergebnis drei Zeilen, während das zweite Ergebnis nur eine Zeile enthält.

Bei der Verwendung von Methoden wie strings.Split oder bufio.NewScanner kann dies der Fall sein Ich kann nicht zwischen diesen Arten von Zeilenumbrüchen unterscheiden. Um dieses Problem zu beheben, können Sie den folgenden Ansatz verwenden:

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

Bei diesem Ansatz identifiziert strings.Replace die wörtlichen Zeilenumbruchzeichen („n“) und ersetzt sie durch echte Zeilenumbruchzeichen („n“). Die resultierende Zeichenfolge „replacedStr“ enthält nun tatsächliche Zeilenumbrüche. Anschließend kann strings.Split die Zeichenfolge jetzt korrekt in Zeilen aufteilen.

Diese Methode gewährleistet die ordnungsgemäße Verarbeitung sowohl von wörtlichen Zeilenumbrüchen als auch von echten Zeilenumbrüchen und ermöglicht so eine genaue zeilenweise Verarbeitung Ihrer gewünschten Daten.

Das obige ist der detaillierte Inhalt vonWie behandelt man wörtliche und tatsächliche Zeilenumbrüche in der „exec.Command'-Ausgabe von Go richtig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Rechner-Backend-API in GoNächster Artikel:Rechner-Backend-API in Go