Rumah >pembangunan bahagian belakang >Golang >Cara Mengendalikan Aksara Baris Baharu Tersurat dan Sebenar dalam Output `exec.Command` Go?

Cara Mengendalikan Aksara Baris Baharu Tersurat dan Sebenar dalam Output `exec.Command` Go?

Linda Hamilton
Linda Hamiltonasal
2024-12-05 08:31:15410semak imbas

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

Mengendalikan Aksara Baris Baharu dalam Go Lang

Dalam Go lang, amalan biasa untuk membaca output arahan adalah menggunakan exec.Command. Walau bagaimanapun, membezakan antara aksara baris baharu literal ("n") dan pemisah baris sebenar boleh menjadi rumit apabila bekerja dengan kepingan bait.

Untuk menjelaskan, baris baharu "harfiah" ialah "n" terkandung dalam rentetan, manakala Pemisahan baris "sebenar" ialah jujukan baris baharu yang berlaku secara semula jadi dalam rentetan. Contohnya:

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

Di sini, hasil pertama mengandungi tiga baris, manakala hasil kedua hanya mengandungi satu baris.

Apabila menggunakan kaedah seperti rentetan.Split atau bufio.NewScanner, mereka mungkin tidak membezakan antara jenis baris baharu ini. Untuk menangani perkara ini, anda boleh menggunakan pendekatan berikut:

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

Dalam pendekatan ini, rentetan.Ganti mengenal pasti aksara baris baharu literal ("n") dan menggantikannya dengan aksara baris baharu sebenar ("n"). Rentetan yang terhasil replacedStr kini mengandungi pemisah baris sebenar. Selepas itu, rentetan. Pemisahan kini boleh membahagikan rentetan kepada baris dengan betul.

Kaedah ini memastikan pengendalian yang betul bagi kedua-dua baris baharu literal dan pemisah baris sebenar, membolehkan pemprosesan baris demi baris tepat bagi data yang anda inginkan.

Atas ialah kandungan terperinci Cara Mengendalikan Aksara Baris Baharu Tersurat dan Sebenar dalam Output `exec.Command` Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn