Uinx/Linux: 줄 바꿈 개행이 포함된 CSV 파일의 전체 라인 수 구하기

줄 바꿈 개행이 포함된 CSV 파일에서 줄 바꿈 개행으로 인한 라인을 제외한 전체 행(row) 수를 구하는 코드를 소개합니다.
Uinx/Linux: 줄 바꿈 개행이 포함된 CSV 파일의 전체 라인 수 구하기
위 이미지처럼 줄 바꿈 개행이 포함된 CSV 파일에서 줄 바꿈 개행으로 인한 라인을 제외한 전체 행(row) 수를 구하는 코드를 소개합니다. 코드 소개 전에 아래와 같은 고민을 하시는 분들에게 추천합니다. 일반적으로 PHP에서 $row_count = count(file('filename.csv')); 코드로 전체 행 수를 찾습니다. 그러나 개행이 포함되었다면 정확한 행 수가 아닙니다. fgetcsv() 를 사용하면 해결은 가능하지만 메모리 이슈로 exec('wc -l filename.csv') 이렇게 시도해보지만 해결되지 않습니다. 그럴 때 아래 코드를 참고해보세요. 샘플 CSV 파일(sample.csv) 1행/1열,1행/2열,1행/3열 2행/1열,2행/2열,2행/3열 3행/1열,3행/2열,"3행/ 3열" 4행/1열,4행/2열,4행/3열 상세 코드 #!/usr/bin/env bash # CSV 파일 경로 source_fie="/home/sample.csv" # CSV 첫 행에서 콤마(,) 수 title_column_count=$(head -n1 ${source_fie} | grep -o "," | wc -l) # title_column_count 기준으로 한 행에 들어갈 값을 재 정의하고 전체 라인 수를 반환 row_count=$(sed -e ":top" -e "s/,//${title_column_count}" -e "t end" -e "N; b top" -e ":end" -e "s/\n//g" ${source_fie} | wc -l) # 전체 행 수 출력 echo "일반적인 전체 라인 수: `wc -l < ${source_fie}`" echo "개행을 제거한 전체 라인 수: ${row_count}" 한줄 코드 # /home/sampl…

댓글 쓰기