10 월 첫 주, Arnold Robbins는 gawk 4.2.0의 베타 버전을 GNU-announce, bug-gawk 및 comp.lang.awk 메일 링리스트에 현재으로 제공한다고 발표했습니다. http://www.skeeve.com/gawk/gawk-4.1.65.tar.gz 에서 사용할 수 있으며 그는 을 언급합니다.이 버전은 많은 중요한 새로운 기능이 포함 된 주요 릴리스입니다.. GNU Awk 4.2에서 FS = ""의 동작은 무엇입니까?
그래서 나는 이러한 기능으로 발굴하기 위해 NEWS 파일을 통해 가서 몇 가지 검사 할이 시점에서 중단 ...변경 4.1.4에서 4.2.0
에
- 새 줄이 필드 구분 기호가 아닌 FS = ""인 경우 POSIX 표준의 수정은 POSIX 모드에 대한 특별한 경우를 제거합니다. 코드 과 doc가 업데이트되었습니다.
'FS = "의 두 경우 사이에는 중요한 차이가있다"'(하나의 공간)와 'FS는 = "
내가 제대로 이해한다면, 그는 약 GNU Awk User's Guide → 4.5.2 Using Regular Expressions to Separate Fields 이야기 [\ t \ n] + " '(하나 이상의 공백, 탭 또는 개행과 일치하는 정규 표현식). FS의 두 값 모두에 대해 필드는 공백, TAB 및/또는 뉴 라인의 실행 (여러 번 인접한 경우)으로 구분됩니다. 그러나 FS의 값이 ""일 때 awk는 먼저 레코드의 앞뒤 공백을 제거한 다음 필드의 위치를 결정합니다.
즉, FS = " "
과 FS = "[ \t\n]+"
을 사용하는 것의 차이입니다.
--posix
모드와 테스트 실행 :
$ ./gawk --posix -F" " '{print "NR:", NR; for(i=1;i<=NF;i++) print i, $i}' <<< "hello how are
you"
NR: 1
1 hello
2 how
3 are
NR: 2
1 you
을 그리고 내 이전 AWK (4.1.3)에 비해 어떤 차이 볼 수 없었다 :
$ gawk --posix -F" " '{print "NR:", NR; for(i=1;i<=NF;i++) print i, $i}' <<< "hello how are
you"
NR: 1
1 hello
2 how
3 are
NR: 2
1 you
을 모두 내 질문에 : FS = " "
의 동작이 GNU Awk 4.2의 --posix
모드에서 어떻게 다른가요? 정확히 무엇이 변경 되었습니까?
1 예, 나는 또한 4.2.tar.gz
해야한다 생각했지만, 그것은 오프 4.1라는 이름 때문에이 내장되어있어 4.2 베타 버전 /의
궁금한데 ... 발표했지만 실현되지 않았습니까? – RomanPerekhrest