[Shell Script] CSV 파일에서 값을 추출하기

 

CSV 파일에서 값을 추출하기 




스크립트 코드 

#!/bin/sh

 

match_id=1

csvfile="data.csv"

 

if [ ! -f "$csvfile" ]; then

    echo "There is no CSV : $csvfile" >$2

fi

 

while read line

do

    id=$(echo $line | cut -f 1 -d ',')

    name=$(echo $line | cut -f 2 -d ',')

 

    if [ "$id" -eq "$match_id" ]; then

        echo "$name"

        fi

done < "$csvfile"

 



실행결과










CSV파일에서 ID 번호가 1인 컬럼을 추출하는 스크립트입니다. 

숫자 1 은 1외에도 0001과 같이 앞부분에 0이있는 형식도 포함합니다 . 









첫번째 컬럼에 ID번호, 두 번째에 이름이 있습니다 . 

test 명령어에서 같은 값인지 판정하는 eq 연산자나 expr 명령어등 숫자값을 다루는 명령어는 0으로 채운 숫자 문자열을 그대로 순수한 숫자값으로 다룰 수 있습니다 . 
















  • #1에서 추출할 ID 번호와 대상 CSV 파일을 정의합니다 . 

  • #2에서 대상 CSV 파일 존재를 확인하며 -f는 대상이 일반 파일인지 확인하는 연산자입니다. 

  • 파일이 존재하지 않거나 디렉터리이면 에러를 표시하고 종료하게 됩니다 . 









  • #3에서 cut 명령어로 추출한 컬럼값을 셸 변수 id와 name에 각각 대입 합니다 .

  • #4에서 ID 번호 컬럼값이 셸변수 match_id로 정의한 추출해야할 ID번호와 일치하는지 판별합니다 .

댓글