![sed를 사용하여 LF를 제거하고 CRLF를 파일에 유지하십시오.](https://linux55.com/image/13790/sed%EB%A5%BC%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20LF%EB%A5%BC%20%EC%A0%9C%EA%B1%B0%ED%95%98%EA%B3%A0%20CRLF%EB%A5%BC%20%ED%8C%8C%EC%9D%BC%EC%97%90%20%EC%9C%A0%EC%A7%80%ED%95%98%EC%8B%AD%EC%8B%9C%EC%98%A4..png)
데이터베이스에 로드하려는 CSV 파일에 인용되지 않은 줄 바꿈 LF가 있어 오류가 발생합니다. sed나 Linux에서 사용할 수 있는 다른 도구를 사용하여 이 줄바꿈을 제거할 수 있나요?
Notepad++ pilcrow를 사용하여 관찰한 바와 같이 CSV 파일의 실제 줄 끝은 CRLF입니다.
답변1
단일 문자 이외의 값(예: GNU)을 awk
지원하는 구현 의 경우 다음을 수행할 수 있습니다.RS
awk
awk 'BEGIN{RS = ORS = "\r\n"}
{gsub("\n", ""); print}' < in.csv > out.csv
그리고 sed
:
CR=$(printf '\r')
sed -e :1 -e '$q' -e "/$CR\$/b" -e 'N;s/\n//;b1' < in.csv > out.csv