![붙여넣기 명령을 사용하여 병합된 csv 파일 사이의 \r을 제거합니다.](https://linux55.com/image/207092/%EB%B6%99%EC%97%AC%EB%84%A3%EA%B8%B0%20%EB%AA%85%EB%A0%B9%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%EB%B3%91%ED%95%A9%EB%90%9C%20csv%20%ED%8C%8C%EC%9D%BC%20%EC%82%AC%EC%9D%B4%EC%9D%98%20%5Cr%EC%9D%84%20%EC%A0%9C%EA%B1%B0%ED%95%A9%EB%8B%88%EB%8B%A4..png)
이와 같은 명령을 사용하여 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에게 감사드립니다.
마침내 나는 답을 얻었다. 삭제의 경우 \r
tsv를 csv로 변환하는 명령은 다음과 같아야 합니다.
cut -f3-5 b.tsv | tr "\t" "," | tr -d "\r" > b.csv