쉘스크립트

awk gsub

고요한하늘... 2012. 2. 29. 15:56

파일이 다음과 같이 구성되 있을때

[공부 잘하는 법 100]

이파일을 아래와 같이 바꾸려고 할때

[공부잘하는법   공부 잘하는 법 100]

 

IFS : 탭

awk -F" " '{ origin=$1; gsub(" ", "", $1 ); printf("%s\t%s:%s\n", $1,origin,$2)}'

 

gsub()

arg1 : 바꾸고자 하는 패턴( reg ex )

arg2 : 패턴이 발견됐을때 바꿀 패턴

arg3 : 대상 문자열

 

gsub의 리턴값은 바뀐 문자열이 아니고 몇개가 변경됐는지가 리턴된다.

'공부 잘하는 법'의 경우 공백이 두번 존재하니 gsub의 리턴값은 2가 된다.

gsub에 의해 공백이 제거된 문자열을 처음 입력값 $1에 적용된다. 따라서

공백이 제거되기 전의 상태를 다른 변수에 할당해 놓아야 한다.

 

'쉘스크립트' 카테고리의 다른 글

bash 전역(global) 변수  (0) 2014.07.17
미리알았다면 좋았을 것들  (0) 2014.04.15
parallel 병렬처리 명령어  (0) 2011.10.20
bash 사용 예  (0) 2011.07.19
스크립트 실행 위치   (0) 2011.06.24