일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 오라클 캐릭터셋 변경
- Oracle 사용자명 입력
- 무료 오라클 데이터베이스
- Oracle 윈도우 설치
- Oracle 초기 사용자
- Oracle 사용자명
- ORA-00922
- 오라클 캐릭터셋 조회
- 윈도우 Oracle
- Oracle Express Edition
- 오라클 캐릭터셋 확인
- Oracle 18c HR schema
- oracle
- Orace 18c
- ora-01722
- 무료 오라클 설치
- 서평단
- Oracle 테이블 띄어쓰기
- Oracle 테이블 대소문자
- ORA-12899
- oracle 18c
- Oracle 18c 설치
- 비전공자를 위한 데이터베이스 입문
- Oracle 18c HR
Archives
- Today
- Total
The Nirsa Way
[Bash Shell Script] 쉘 스크립트 파일 2개를 불러와 key-value 형태로 변환 (bash shell script key-value, bash shell script map) 본문
Programming/Bash Shell Script
[Bash Shell Script] 쉘 스크립트 파일 2개를 불러와 key-value 형태로 변환 (bash shell script key-value, bash shell script map)
KoreaNirsa 2021. 12. 14. 16:20반응형
쉘 스크립트 파일 2개를 불러와 key-value 형태로 변환 (bash shell script key-value, bash shell script map)
아래와 같은 파일이 있을 때 쉘 스크립트의 map을 사용하여 key : key1 , value : value1 형태로 출력하는 코드 입니다.
#!/bin/bash
## 파일을 읽어 배열 형태로 저장
key_list=(`cat /root/test1`)
value_list=(`cat /root/test2`)
## 아래 코드 실행 중 길이를 넘어 에러를 발생하므로 key_list, value_list 측정 길이에서 -1
KEY_EXPR=`expr ${#key_list[@]} - 1`
VALUE_EXPR=`expr ${#value_list[@]} - 1`
## map을 사용하기 위한 배열 변수 선언
declare -A map_var
## 함수 선언
function map_func() {
count=$3 ## 아래 코드에서 i로 전달받은 값을 count 변수에 저장
map_var[$1]=$2 ## key=value 형태로 저장
if [[ $count -eq $KEY_EXPR ]]; then ## count와 key의 길이가 같을 경우 코드 시행
for _key in "${!map_var[@]}" ## map_var의 key를 _key 변수로 저장
do
echo "key : $_key , value : ${map_var[$_key]}" ## key value 출력
done
fi
}
if [[ $KEY_EXPR -eq $VALUE_EXPR ]]; then ## key와 value의 행 개수가 같을 경우 코드 실행
for ((i=0;i<=${#key_list[@]}&&i<=${#value_list[@]};i++)) ## 변수 i의 값이 key_list와 value_list의 길이보다 커질때까지 반복
do
map_func ${key_list[$i]} ${value_list[$i]} $i ## map_func 함수에 key_list, value_list, i 변수 값을 전달
done
else
echo "key와 value의 길이가 다릅니다." ## key와 value의 행 개수가 다를 경우 출력
fi
반응형