쉼표로 구분된 값이 있는 .dat 파일을 .csv 파일로 변환하는 방법은 무엇입니까?

쉼표로 구분된 값이 있는 .dat 파일을 .csv 파일로 변환하는 방법은 무엇입니까?

.dat이런 파일이 있습니다 .

    Name, Age, Place, Country
    A, 1, Ch, In
    B, 2, Ch, In
    C, 3, , In

.csv 파일로 변환하고 싶습니다.이름, 나이, 위치 및 국가제목으로.

어떻게 하나요?

답변1

파일에 공백과 빈 줄이 너무 많다고 가정하면 csvkit 패키지를 사용 awk하여 제거할 수 있습니다.csvformat

$ cat file

    Name, Age, Place, Country

    A, 1, Ch, In

    B, 2, Ch, In

    C, 3, , In
$ awk 'NF' file | csvformat -S
Name,Age,Place,Country
A,1,Ch,In
B,2,Ch,In
C,3,,In

awk명령은 먼저 원시 데이터를 읽고 공백으로 구분된 공백이 아닌 내용이 포함된 줄만 출력합니다. 이렇게 하면 빈 줄이 제거됩니다.

그런 다음 명령은 csvformat나머지 데이터를 올바른 형식의 CSV 데이터 세트로 다시 포맷합니다. -S( ) 옵션은 --skipinitialspace이를 포함하는 필드에서 초기 공백을 제거합니다.

이는 모두 데이터에 쉼표나 줄 바꿈이 포함된 필드가 포함되어 있지 않다고 가정합니다.

답변2

파일 .dat은 이미 쉼표로 구분되어 있으므로 접미사를 으로 변경하면 .csv충분합니다.

공백과 빈 줄을 제거하려면 다음을 수행하십시오.

cat input.txt | sed 's/ //g' | grep -v '^$' > output.txt

관련 정보