전제 조건:
이 자습서의 예제를 연습하기 전에 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 파일의 행과 열을 계산하는 방법이 이 자습서에 나와 있습니다.