리눅스 시스템을 사용하게 되면 필연적으로 문자열을 처리해야 되는 상황이 있습니다. 그 상황에 대비하여 기초적인 단계부터 심화 단계까지 한번 살펴보는 시간을 갔다록 하겠습니다.
우선 처음으로는 간단한 명령어로 문자열을 파싱하는 그렇지만 아주 강력한 문자열을 다루는 방법을 알아보도록 하겠습니다.
어쩌면 지금 소개하는 방법은 문자열을 다루는 기초이자 핵심임을 알아 두셨으면 합니다.
먼저 grep은 해당 열에 찾고 싶은 문자열이 있는지를 찾는 명령어 입니다.
<sample.txt> root@ubuntu:/shell# cat sample.txt |
<grep.sh> root@ubuntu:/shell# cat grep.sh cat $1 |grep boy |
root@ubuntu:/shell# ./grep.sh sample.txt |
보시는 바와 같이 grep을 사용하면 boy가 있는 문자열을 찾게 됩니다.
다음은 cut입니다. cut을 활용하게 되면 구분자(char)를 이용하여 문자열을 추출하게 됩니다. 다시말하면 열로서 구분을 한다는 의미입니다. 여기서 중요한 점은 구분자 한글자이여야만 됩니다. 예를 들면 csv 파일 같은 형식에 적합하겠습니다.
<sample.csv> root@ubuntu:/shell# cat sample.csv |
<cut.sh> root@ubuntu:/shell# cat cut.sh cat $1 |cut -d',' -f1 |
root@ubuntu:/shell# ./cut.sh sample.csv |
마지막으로는 awk 입니다. cut과는 다르게 파라미터 단위로 파싱을 하게 됩니다. 예제 파일을 통해 확인 해보겠습니다
<sample1.csv> root@ubuntu:/shell# cat sample1.csv |
<cut.sh> root@ubuntu:/shell# cat awk.sh cat $1 |awk '{print $1}' |
root@ubuntu:/shell# ./awk.sh sample.csv |
보시는 바와 같이 불규칙한 공백이 있는 파일에서 공백을 기준으로 파라미터화 해서 원하는 출력을 뽑아내는 모습을 확인 할 수 있습니다.
'리눅스 쉘 스크립트' 카테고리의 다른 글
쉘 스크립트 - 정규식 활용 예제 (핸드폰번호, IP, URL) (0) | 2017.12.03 |
---|---|
쉘 스크립트 - 문자열 : 정규표현식- 개요와 메타문자 (1) (0) | 2017.11.19 |
쉘 스크립트 - 함수 (2) : 백그라운드 & 멀티스레드 (0) | 2017.11.10 |
쉘 스크립트 - 함수 (1) : 선언과 활용 (0) | 2017.11.08 |
쉘 스크립트의 알아두면 쓸모있는 환경변수(예약어) (0) | 2017.11.05 |