쉘스크립트
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에 적용된다. 따라서
공백이 제거되기 전의 상태를 다른 변수에 할당해 놓아야 한다.