반달가면 이글루에서 백업 - 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
'bash script' 카테고리의 다른 글
[bash: read, while] 공백을 포함한 이름을 가진 파일들에 대한 반복 작업 - 2 (0) | 2023.07.22 |
---|---|
[bash: awk] awk에서 외부 명령을 실행하고 결과를 변수에 저장하기 (0) | 2023.07.20 |
[bash: while, read, <] 텍스트 파일을 한줄씩 읽어서 작업하기 (0) | 2023.07.20 |
[bash: grep] 두개의 파일에서 공통으로 출현하는 문자열 찾기 (0) | 2023.07.19 |
[bash: awk] 작업 시작전, 완료후에 실행할 명령어 지정(BEGIN/END) (0) | 2023.07.19 |