Gawk 매뉴얼에서 나는 두 가지 기능을 발견 patsplit
했고 split
.
차이점이 무엇인지 알고 싶습니다.
목적은 이해합니다
split
. 그런데 목적이 무엇입니까patsplit
?
감사해요.
답변1
에서는 패턴을 일치시키는 split
동안 구분 기호를 제공합니다.patsplit
~ 사이분리 기호:
$ echo 'foo,bar' | awk '{n = split($0,a,/,/); for(i=1;i<=n;i++) print a[i]}'
foo
bar
하지만
$ echo 'foo,bar' | awk '{n = patsplit($0,a,/[^,]*/); for(i=1;i<=n;i++) print a[i]}'
foo
bar
답변2
split
(또는 지정된 경우 특정 정규식)을 사용하여 기본 필드 분할과 일치합니다 FS
. 정규식을 사용하여 일치시킵니다.필드 구분 기호. 를 지정하면 FS=,
필드가 쉼표로 구분됩니다. 쉼표 자체는 필드 내용에 표시되지 않고 구분 기호 배열(지정된 경우)에 표시됩니다.
patsplit
일치 필드 패턴 분할, 값을 지정하여 기본 필드 분할을 재정의할 수 있습니다 FPAT
. 정규식을 사용하여 일치시킵니다.필드 내용. 예를 들어, 레코드에 제공된 숫자에만 관심이 있는 경우 이 정규식을 지정 FPAT="[[:digit:].]+"
하거나 사용하여 모든 연속 숫자 그룹을 일치시키고 이를 필드로 작동할 수 있습니다.patsplit