Bash 2차원 배열

1 개요[ | ]

Bash 2차원 배열
Bash
CPU
0.0s
MEM
3M
0.0s
Copy
declare -A MEMBERS=(
[0,ID]=102 [0,Name]="Yonezawa Akinori" [0,Address]="Naha, Okinawa"
[1,ID]=202 [1,Name]="Murata Makoto" [1,Address]="Sendai, Miyagi"
[2,ID]=104 [2,Name]="Sakamura Ken" [2,Address]="Kumamoto, Kumamoto"
)

echo ${MEMBERS[0,ID]}
echo ${MEMBERS[0,Name]}
echo ${MEMBERS[0,Address]}
echo ${MEMBERS[1,ID]}
echo ${MEMBERS[2,ID]}
102
Yonezawa Akinori
Naha, Okinawa
202
104
Bash
Copy
declare -A MEMBERS
declare -A r0=([ID]=102 [Name]="Yonezawa Akinori" [Address]="Naha, Okinawa")
declare -A r1=([ID]=202 [Name]="Murata Makoto" [Address]="Sendai, Miyagi")
declare -A r2=([ID]=104 [Name]="Sakamura Ken" [Address]="Kumamoto, Kumamoto")

for i in {0..2}; do for c in ID Name Address; do
	ref="r$i[$c]"; MEMBERS[$i,$c]=${!ref}
done; done

echo ${MEMBERS[0,ID]}
echo ${MEMBERS[0,Name]}
echo ${MEMBERS[0,Address]}
echo ${MEMBERS[1,ID]}
echo ${MEMBERS[2,ID]}
Loading
Bash
Copy
declare -A MEMBER0=([ID]=102 [Name]="Yonezawa Akinori" [Address]="Naha, Okinawa")
declare -A MEMBER1=([ID]=202 [Name]="Murata Makoto" [Address]="Sendai, Miyagi")
declare -A MEMBER2=([ID]=104 [Name]="Sakamura Ken" [Address]="Kumamoto, Kumamoto")

for i in {0..2}; do for c in ID Name Address; do
	ref="MEMBER$i[$c]"; echo "$ref = ${!ref}";
done; done
echo ${MEMBER1[Name]} # Murata Makoto
Loading

2 같이 보기[ | ]

편집자 J Jmnote
  • 로또번호 생성
    초보를 위한 개발 실습 과제로군요 ㅎㅎ Pinkcrimson
  • 리눅스 날짜 기준으로 파일 삭제하기
    mtime 문법이 이상합니다. 확인 부탁합니다. + 없이 숫자를 입력해야 특정 시점 이전으로 검색이 됩니다. +가 들어가면 이상한 값이 나옵니다. 백승현
  • 리눅스 날짜 기준으로 파일 삭제하기
    +를 입력하는게 맞는 것 같습니다. 저는 + 없이 입력했더니 해당 시점만 나옵니다. 테스트하여 내용을 수정했으니 참고바랍니다. ( 테스트 환경: 우분투 12.04 및 14.04, find 4.4.2 )J Jmnote