[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번호와 일치하는지 판별합니다 .
댓글
댓글 쓰기