Go Lang での改行文字の処理
Go lang では、コマンド出力を読み取るための一般的な方法は exec.Command を使用します。ただし、バイト スライスを使用する場合、リテラル改行文字 (「n」) と実際の改行を区別するのは難しい場合があります。
明確にするために、「リテラル」改行は文字列内に含まれる「n」ですが、 「実際の」改行は、文字列内で自然に発生する改行シーケンスです。例:
Print first result: "123;\n234;\n" Print second result: "456;\n"
ここでは、最初の結果には 3 行が含まれていますが、2 番目の結果には 1 行しか含まれていません。
strings.Split や bufio.NewScanner などのメソッドを使用する場合、これらのタイプの改行を区別しないでください。これに対処するには、次のアプローチを利用できます。
replacedStr := strings.Replace(output, `\n`, "\n", -1) processedLines := strings.Split(replacedStr, "\n")
このアプローチでは、strings.Replace がリテラルの改行文字 (「n」) を識別し、それらを実際の改行文字 (「n」) に置き換えます。結果の文字列 replaceStr には実際の改行が含まれます。その後、strings.Split は文字列を行に正しく分割できるようになりました。
このメソッドにより、リテラルの改行と実際の改行の両方が適切に処理され、目的のデータを行ごとに正確に処理できるようになります。
以上がGo の `exec.Command` 出力でリテラルおよび実際の改行文字を適切に処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。