.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