Bash에서 CSV 파일 읽기

Basheseo Csv Pail Ilg Gi



CSV의 전체 형식은 쉼표로 구분된 값입니다. CSV 파일은 데이터를 반구조 표 형식으로 저장하는 다양한 목적을 위해 코더에서 사용됩니다. 파일의 각 행은 테이블의 행으로 처리되며 행의 각 필드는 CSV 파일에서 쉼표(,)로 구분됩니다. Bash에는 이 튜토리얼에서 설명하는 CSV 파일을 읽는 여러 가지 방법이 있습니다.

전제 조건:

이 자습서의 예제를 연습하기 전에 CSV 파일을 만들어야 합니다. 이 자습서에서 사용되는 스크립트의 출력을 확인하려면 다음 내용으로 'customers.csv'라는 이름의 CSV 파일을 만듭니다. 이 파일에서 3 4의 분야 라인과 6 줄이 비어 있습니다.

아이디, 이름, 이메일, 주소, 모바일

101 , 자파르 이크발, 자파르 @ gmail.com, 9 / 단몬디 다카, + 8801762341425

102 , 카말 호세인, 카말 @ gmail.com, 120 미르푸르 다카, 8801988675345

103 니롭 초두리 33 / 2 지가톨라 다카, 8801754532312

104 파힌 하산 @ gmail.com < 헥사 = '공백' > , > 10 Kadhalbagun 다카, + 8801512875634

105 , 메릴랜드 라힘,, 2 / B 단몬디 다카, + 8801700453423

Bash에서 CSV 파일을 읽는 다양한 방법

CSV 파일은 Bash 스크립트를 사용하여 다양한 방식으로 구문 분석할 수 있습니다. 튜토리얼의 이 부분에는 'customers.csv' 파일을 읽는 다양한 방법이 나와 있습니다.







예 1: CSV 파일의 원본 콘텐츠 읽기

'while' 루프를 사용하여 'customers.csv' 파일의 전체 내용을 읽는 다음 스크립트로 Bash 파일을 만듭니다.



#!/빈/배시

#파일명을 정한다

파일 이름 = '고객.csv'

# 각 반복에서 파일의 각 줄을 읽습니다.

~하는 동안 읽다 데이터

하다

#라인 인쇄

에코 $데이터

완료 < $파일명

스크립트 실행 후 다음 출력이 나타납니다.

예 2: 헤더를 대문자로 하여 CSV 파일 읽기

'customers.csv' 파일의 첫 번째 줄에는 파일의 제목이 포함되어 있습니다. 파일의 첫 줄을 대문자로 한 후 'customers.csv' 파일의 내용을 인쇄하는 다음 스크립트를 사용하여 Bash 파일을 만듭니다. 'awk' 명령은 스크립트에서 헤더를 대문자로 표시한 후 파일 내용을 인쇄하는 데 사용됩니다. 쉼표(,)는 'customers.csv' 파일을 읽고 'updatedcustomers.csv' 파일을 쓰기 위해 스크립트의 FS 및 OFS 값에 할당됩니다. 'cat' 명령은 두 파일의 내용을 인쇄하는 데 사용됩니다.

printf '원본 파일: \N '

#CSV 파일의 원본 내용 인쇄

고양이 cstomers.csv

#헤더를 대문자로 한 후 새 CSV 파일 생성

으악 'BEGIN{FS=',';OFS=','}

{

만약(NR==1)

프린트탑퍼($0)

또 다른

인쇄

}'
고객.csv > 업데이트된 고객.csv

printf ' \N 수정된 파일: \N '

#새 CSV 파일 인쇄

고양이 업데이트된 고객.csv

스크립트 실행 후 다음 출력이 나타납니다.

예 3: CSV 파일의 빈 필드를 '없음'으로 바꾸기

'None' 값으로 빈 필드를 수정한 후 'customers.csv' 파일의 내용을 인쇄하는 다음 스크립트로 Bash 파일을 만듭니다. 다음에 언급된 두 개의 필드가 이 파일에서 비어 있습니다. 'awk' 명령은 스크립트에서 빈 필드를 수정한 후 파일 내용을 인쇄하는 데 사용됩니다. 쉼표(,)는 'customers.csv' 파일을 읽고 'updatedcustomers.csv' 파일을 쓰기 위해 스크립트의 FS 및 OFS 값에 할당됩니다. 'cat' 명령은 표 형식으로 두 파일의 내용을 인쇄하는 데 사용됩니다.

printf '원본 파일: \N '

# CSV 파일의 원래 내용을 표 형식으로 인쇄

고양이 고객.csv | 열 -s, -티

으악 'BEGIN{FS=',';OFS=','}

{

for(필드=1;필드<=NF;필드++)

{

if($field == '') $field='없음'

}

인쇄

}'
고객.csv > 수정된customers2.csv

printf ' \N 수정된 파일: \N '

# 새 CSV 파일을 표 형식으로 인쇄

고양이 수정된customers2.csv | 열 -s, -티

스크립트 실행 후 다음 출력이 나타납니다.

예 4: CSV 파일의 총 행 및 열 수 인쇄

'customers.csv' 파일의 총 행 및 열 수를 계산하는 다음 스크립트를 사용하여 Bash 파일을 만듭니다. NR 변수는 파일의 총 행 수를 인쇄하는 데 사용됩니다. NF 변수는 파일의 총 필드 수를 인쇄하는 데 사용됩니다.

printf '원본 파일: \N '

#CSV 파일의 원본 내용 인쇄

고양이 고객.csv

에코

에코 -N '총 행 수:'

으악 -에프, 'END{print NR}' 고객.csv

에코 -N '총 열:'

으악 -에프, 'END{print NF}' 고객.csv

스크립트를 실행한 후 다음 출력이 나타납니다. 파일의 총 행은 6이고 파일의 총 필드는 5이며 출력에 인쇄됩니다.

결론

Bash 스크립트를 사용하여 CSV 파일을 읽고, CSV 파일을 수정하고, CSV 파일의 행과 열을 계산하는 방법이 이 자습서에 나와 있습니다.