Go での改行の区別: 内部文字列の区切りの保持
exec.Command を使用して Linux コマンドから出力を読み取る場合、結果のバイト配列には次のものが含まれる場合があります。リテラル改行文字 (「n」) とエスケープされた改行文字 (「\n」) の両方。これは、内部文字列の区切りを保持しながら出力を複数の行に分割しようとする場合に問題が生じる可能性があります。
1 つの方法は、次の行を使用してエスケープされた改行を実際の改行に置き換えることです。
strings.Replace(out, `\n`, "\n", -1)
Byこれにより、エスケープされた改行を元の形式に効果的に変換し、次のような標準的な方法を使用して出力を行に分割できるようになります。 as:
lines := strings.Split(out, "\n")
これにより、出力は複数の行に分割されますが、文字列内の区切りは保持されます。たとえば、次の出力について考えてみましょう。
First line: "test1" Second line: "123;\n234;\n345;" Third line: "456;\n567;" Fourth line: "test4"
上記の手法を使用してこの出力を分割すると、次の行が生成されます。
First line: "test1" Second line: "123;\n234;\n345;" Third line: "456;\n567;" Fourth line: "test4"
ご覧のとおり、内部の文字列の区切りは次のとおりです。保存され、出力は正しく行に分割されます。
以上がGo 文字列を改行で分割するときに内部文字列のブレークを保持するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。