붙여넣기 명령을 사용하여 병합된 csv 파일 사이의 \r을 제거합니다.

붙여넣기 명령을 사용하여 병합된 csv 파일 사이의 \r을 제거합니다.

이와 같은 명령을 사용하여 3개의 csv 파일을 병합했습니다.

paste -d "," a.csv b.csv c.csv > result.csv

결과 csv에는 아래와 같이 각 행의 b.csv와 c.csv 열 사이에 예기치 않은 줄 바꿈 문자가 있습니다.

col-a1, col-a2, col-b1, col-b2, col-b3
,col-c1, col-c2 ...

b.csv는 원래 tsv였으며 다음 명령을 사용하여 csv로 변환되었습니다.

cut -f3-5 b.tsv | tr "\t" "," > b.csv

여기서 원본 b.tsv의 5번째 필드는 행의 마지막 필드입니다.

왜 \r이 있나요?

이를 감안할 때 붙여넣기 명령을 사용해야 합니다. 3 csv의 모든 열이 한 행에 있도록 줄 바꿈을 어떻게 제거합니까?

업데이트: 아래 설명에 대한 응답으로 이 명령의 출력은

LC_ALL=C sed -n 'l;2q' result.csv

다음과 같습니다:

col-a1, col-a2, col-b1, col-b2, col-b3\r,col-c1, col-c2$
...

답변1

의견에 대한 팁을 주신 Stéphane Chazelas에게 감사드립니다.

마침내 나는 답을 얻었다. 삭제의 경우 \rtsv를 csv로 변환하는 명령은 다음과 같아야 합니다.

cut -f3-5 b.tsv | tr "\t" "," | tr -d "\r" > b.csv

관련 정보