Go Lang에서 개행 문자 처리
Go lang에서 명령 출력을 읽는 일반적인 방법은 exec.Command를 사용하는 것입니다. 그러나 바이트 슬라이스로 작업할 때 리터럴 개행 문자("n")와 실제 줄 바꿈을 구별하는 것은 까다로울 수 있습니다.
명확하게 설명하자면, "리터럴" 개행 문자는 문자열 내에 포함된 "n"입니다. "실제" 줄 바꿈은 문자열에서 자연적으로 발생하는 개행 시퀀스입니다. 예를 들면 다음과 같습니다.
Print first result: "123;\n234;\n" Print second result: "456;\n"
여기서 첫 번째 결과에는 세 줄이 포함되어 있고 두 번째 결과에는 한 줄만 포함되어 있습니다.
strings.Split 또는 bufio.NewScanner와 같은 메서드를 사용할 때 다음이 발생할 수 있습니다. 이러한 유형의 개행을 구별하지 마십시오. 이 문제를 해결하려면 다음 접근 방식을 활용할 수 있습니다.
replacedStr := strings.Replace(output, `\n`, "\n", -1) processedLines := strings.Split(replacedStr, "\n")
이 접근 방식에서 strings.Replace는 리터럴 줄 바꿈 문자("n")를 식별하고 이를 실제 줄 바꿈 문자("n")로 바꿉니다. 결과 문자열 replacementStr에는 이제 실제 줄 바꿈이 포함됩니다. 이후에 strings.Split은 이제 문자열을 줄로 올바르게 분할할 수 있습니다.
이 방법을 사용하면 리터럴 줄 바꿈과 실제 줄 바꿈을 모두 적절하게 처리할 수 있으므로 원하는 데이터를 한 줄씩 정확하게 처리할 수 있습니다.
위 내용은 Go\의 `exec.Command` 출력에서 리터럴 및 실제 개행 문자를 올바르게 처리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!