강좌 & 팁
글 수 2,412
2014.12.04 13:00:32 (*.134.169.166)
49403
전번 강좌에서 두 리스트에 대한 차(difference)를 tr,sort,uniq커맨드를 이용해서 얻을 수 있었다.
bash 스크립트에서 두 리스트에 대한 union (리스트)를 얻어 보고자 한다.
bash에서 리스트는 공백문자로 분리된 하나의 문자열을 의미한다.
여기 2개의 리스트가 있을 때,
A_list='a b d'
B_list='b e'
리스트의 공백을 줄바꿈으로 변경하고 소팅하여 나열하면
a
b
b
d
e
와 같이 된다.
여기 uniq명령을 적용하면
a
b
d
e
가 출력되며, 이것이 바로 union의 결과가 된다.
'uniq -u'를 적용하면
a
d
e
와 같이 중복되지 않은 아이템만이 출력된다.
이 '리스트 차'를 이용해서 intersection도 얻을 수 있다.
A_list와 B_list를 이용하여 테스트를 해 보면
한 쪽이 빈리스트(empty list)일 경우를 보면 다음과 같다.