bash script2023. 7. 20. 08:55

 

반달가면 이글루에서 백업 - http://bahndal.egloos.com/590887

awk에서도 expr의 substr 옵션과 같은 기능을 하는 함수가 존재한다. 이름도 substr로 같다. (expr의 substr 옵션에 대한 내용은 이전 게시물을 참고하자. 여기로)

 

substr 함수의 형식은 아래와 같다. 아래의 형식에서 문자열이 들어갈 자리에 $1, $2 등 위치(field) 변수를 지정해 주면 된다.

substr("문자열",[시작 위치],[길이])

간단한 예시를 보자. 문자열 "I'm a student"에서 세번째 단어(student)의 2번째 바이트부터 4바이트를 추출하고자 한다면 아래와 같이 될 것이다. substr 함수를 이용해서 3번째 단어의 2번째 바이트부터 4바이트를 추출하여 변수 result에 저장하고 print 명령으로 출력.

echo "I'm a student" | awk '{result=substr($3,2,4); print result}'
tude

변수를 사용하지 않고 추출 결과를 직접 print 명령의 인자로 넘겨도 된다. 아래의 예시를 보자.

echo "I'm a student" | awk '{print substr($3,2,4)}'
tude

형식이 일정하게 지정된 텍스트 파일에서 특정 항목을 골라 특정 문자열을 추출해야 할 경우 꽤 요긴하게 활용할 수 있다.

 

 

728x90
Posted by 반달가면