Bash 스크립팅 입문
Alex Scriven
Data Scientist
이 코스에서는 다음을 다룹니다:
먼저, 왜 Bash일까요?
Bash는 'Bourne Again Shell'의 약자입니다(말장난)
80년대에 개발되었지만 현재도 매우 널리 쓰이는 셸입니다. 많은 Unix 시스템과 Mac의 기본 셸
Unix는 인터넷의 기반입니다! (ML 모델, 데이터 파이프라인 실행)
그렇다면 왜 Bash 스크립팅일까요?
이 코스는 기본 지식을 전제로 합니다.
cat, grep, sed 등의 기본 명령 사용 경험감이 떨어졌다면 걱정 마세요. 지금 복습합니다!
중요한 셸 명령:
(e)grep: 정규식 패턴으로 입력 필터링cat: 파일 내용을 줄 단위로 연결 출력tail \ head: 마지막/처음 -n줄만 출력(플래그)wc: 단어/줄 수 세기(플래그 -w -l)sed: 패턴 매칭 기반 문자열 치환'Regex'(정규 표현식)은 Bash 스크립팅의 핵심 기술입니다.
파일과 파일 내 데이터 필터링, 인자 매칭 등 여러 용도로 자주 사용됩니다. 다시 짚고 가겠습니다.
정규식을 테스트하려면 regex101.com 같은 사이트를 활용하실 수 있습니다
예제로 셸 명령을 복습해 보겠습니다.
3줄 데이터가 있는 텍스트 파일 fruits.txt가 있다고 합시다:
banana
apple
carrot
grep 'a' fruits.txt를 실행하면 다음이 반환됩니다:
banana
apple
carrot
하지만 grep 'p' fruits.txt를 실행하면:
apple
대괄호는 매칭 집합입니다(예: [eyfv]). ^를 사용하면 반대 집합(해당 문자/숫자 제외)입니다
따라서 grep '[pc]' fruits.txt를 실행하면:
apple
carrot
터미널에서 파이프를 사용해 보신 적이 있을 것입니다. 파일에 항목이 매우 많다면 sort | uniq -c를 쓸 수 있습니다
wc -l로 개수를 얻고 head를 사용합니다cat new_fruits.txt | sort | uniq -c | head -n 3
14 apple
13 bannana
12 carrot
Bash 스크립팅 입문