Linux에서 sed 명령을 사용하여 csv 파일의 ^M\n 부분 공백을 바꾸고 싶습니다.

Linux에서 sed 명령을 사용하여 csv 파일의 ^M\n 부분 공백을 바꾸고 싶습니다.

sed 명령을 사용하여 Linux에서 CSV 파일의 ^M\n 부분 공백을 바꾸고 싶습니다...

나는 그것을 사용했지만 sed 's/\n/ /g'\ 만 대체하고 다른 부분은 대체하지 않습니다 ...

좀 더 설명하기 위해 다음과 같은 쿼리를 사용합니다.

| sed "s/'/\'/;s/\t/\",\"/g;s/^/\"/;s/$/\"/;s/\n//g" > file.csv

쿼리 결과는 csv 파일로 수집됩니다. 하지만 csv 파일에서 이러한 문자를 볼 수 있습니다 \n. 제거하고 싶습니다. 그래서... 그에 따라 sed 명령을 변경해야 합니다... 대신 \n공백 문자를 가져와야 합니다...

답변1

그렇게 한 후에도 나는 이 문제에 직면했습니다 dos2unix. 아래 코드로 이 문제를 해결할 수 있었습니다.

sed -i  "s/\r/ /g" <fileName>
  • ^Mctrl+r, \r파일의 공백으로 바꾸세요.

답변2

파일의 DOS 줄 끝을 공백으로 바꾸려면 다음을 수행하십시오 file.

dos2unix file
tr '\n' ' ' file >newfile

먼저 파일을 Unix 텍스트 파일로 변환한 다음 각 줄 바꿈 문자를 공백으로 바꿉니다. 결과는 새 파일에 기록됩니다 newfile.

한 단계(수정 없음 file):

dos2unix <file | tr '\n' ' ' >newfile

약간 안전하지 않음(제거하기 때문에)모두DOS 줄 끝의 일부가 아닌 경우에도 파일에 캐리지가 반환됩니다( file수정되지 않음).

tr -d '\r' <file | tr '\n' ' ' >newfile

관련 정보