awk 파싱에서 RS = 관련하여 질문드립니다

kkb의 이미지

	RS = "[\t\n\v\f\r ]*[\r\n]+[\t\n\v\f\r ]*"

위 문장을 어떻게 해석해야 할까요?

built-in 변수인 Records, RS 변수가 어떻게 이용되는 지를 질문드리는 것은 아니고
"[\t\n\v\f\r ]*[\r\n]+[\t\n\v\f\r ]*"
위의 문자열이 의미하는 바를 아주 정확하게는 모르겠습니다

설명이나 도움 말씀 주시면 감사하겠습니다

cyberbot의 이미지

RS는 Record Seperator 입니다. 라인 구분자라고 생각하셔도 될 것 같습니다.
"..." 는 정규식으로 보입니다.

\t - tab
\n - newline
\v - vertical tab
\f - ?
\r - carrage return
" " - 공백

[abcd] - abcd 중 하나
* - 0개 이상 반복
+ - 1개 이상 반복

이 내용을 전부 조합해서 RS로 사용한다는 말입니다.
글로 쓰기가 좀 애매하네요. -_-) 일단 한번 생각해보시기 바랍니다.
정규식을 검색해보시는 것도 도움이 될겁니다.

kkb의 이미지

...

cyberbot의 이미지

"[\t\n\v\f\r ]*[\r\n]+[\t\n\v\f\r ]*"

중간에+를 중심으로 생각해보세요.

[\n\r]+로 구분을 하고 그 앞, 뒤의 공백문자열까지 RS로 사용한다는 의미입니다.

아래와 같은 1.text가 있을경우
abcd\t \v\f \n\r
\n\r
\n\r
\n\r
\t \v\f dcba

awk 'BEGIN{RS="[\t\n\v\f\r ]*[\r\n]+[\t\n\v\f\r ]*"} {print $0}' 1.txt
abcd
dcba