我試圖讀出由下面的代碼通過Linux命令產生某些串輸出:轉到郎區分「 n」個和行中斷
out, err := exec.Command("sh", "-c", cmd).Output()
上面out是[]byte
類型的,如何可以區分「 \ n「字符包含在真正換行符的行內容中嗎?我試圖
strings.Split(output, "\n")
和
bufio.NewScanner(strings.NewReader(output))
但每當看到 「\ n」 字符他們都分裂了整個字符串緩衝區。
行,澄清的,「虛幻」中斷是包含在一個字符串中的「\ n」字符如下, Print first result: "123;\n234;\n" Print second result: "456;\n"
整個輸出是一個大的多行字符串,它也可以包含一些其他引用的字符串,我正在處理我的go程序中的整個字符串輸出,但我無法控制命令輸出並在「\ n」字符前添加反斜槓。
進一步說明:我打算處理包含字符串串的字節序列,並且要保留內部字符串中包含的「\n
」,並使用外層「\n
」來斷開線。因此,對於以下字節序列:
First line: "test1"
Second line: "123;\n234;\n345;"
Third line: "456;\n567;"
Fourth line: "test4"
我想在處理整個序列時得到3行,而不是獲得7行總數。這是一箇舊的項目,但我記得我可以使用Python直接使用「for line in f
」之類的語法獲得3行,並打印第二個內部字符串的內容而不是渲染它。
什麼是「真正的換行符」?什麼時候是「\ n」「虛幻」換行符? – Volker
根據操作系統(和/或文件格式),換行符是'\ n',或者是\ r \ n',或者是'\ r'。沒有什麼可以「區分」;那個字節(或字節對在'\ r \ n'的情況下)*是換行符。如果你碰巧指的是「\」字符後跟「n」,你可以用Go來寫成'\\ n「'或者一個反引用的字符串(我不知道如何在SO中正確顯示)降價)。 –