>백엔드 개발 >Golang >Go\의 `exec.Command` 출력에서 ​​리터럴 및 실제 개행 문자를 올바르게 처리하는 방법은 무엇입니까?

Go\의 `exec.Command` 출력에서 ​​리터럴 및 실제 개행 문자를 올바르게 처리하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-12-05 08:31:15410검색

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

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.