awk 학습 노트 (16) - 문자열 함수
7703 단어 awk 문자열 함수학습 노트
함수.
설명 하 다.
gsub( Ere, Repl, [ In ] )
정규 표현 식 의 모든 구체 적 인 값 이 대 체 된 점 을 제외 하고 sub 함수 와 똑 같이 실 행 됩 니 다.
sub( Ere, Repl, [ In ] )
Repl 매개 변수 가 지정 한 문자열 로 In 매개 변수 가 지정 한 문자열 의 Ere 매개 변수 가 지정 한 확장 정규 표현 식 의 첫 번 째 구체 적 인 값 을 대체 합 니 다.sub 함수 가 교 체 된 수량 을 되 돌려 줍 니 다.Repl 매개 변수 가 지정 한 문자열 에 나타 나 는 & (기호 와) 는 In 매개 변수 가 지정 한 Ere 매개 변수 가 지정 한 확장 정규 표현 식 과 일치 하 는 문자열 로 대 체 됩 니 다.In 인자 가 지정 되 지 않 으 면 결 성 된 값 은 전체 기록 ($0 기록 변수) 입 니 다.
index( String1, String2 )
String 1 매개 변수 가 지정 한 문자열 (String 2 가 지정 한 매개 변수 가 있 음) 에서 위 치 를 되 돌려 주 고 1 부터 번 호 를 매 깁 니 다.String 2 인자 가 String 1 인자 에 나타 나 지 않 으 면 0 (0) 을 되 돌려 줍 니 다.
length [(String)]
String 인자 가 지정 한 문자열 의 길이 (문자 형식) 를 되 돌려 줍 니 다.String 인자 가 없 으 면 전체 기록 의 길이 ($0 기록 변수) 를 되 돌려 줍 니 다.
substr( String, M, [ N ] )
N 매개 변수 가 지정 한 문자열 을 되 돌려 줍 니 다.하위 문자열 은 String 매개 변수 가 지정 한 문자열 에서 가 져 옵 니 다. 그 문 자 는 M 매개 변수 가 지정 한 위치 로 시 작 됩 니 다.M 매개 변 수 는 String 매개 변수의 첫 번 째 문 자 를 번호 1 로 지정 합 니 다.N 인자 가 지정 되 지 않 으 면 하위 문자열 의 길 이 는 M 인자 가 지정 한 위치 에서 String 인자 의 끝 에 있 는 길이 입 니 다.
match( String, Ere )
String 매개 변수 가 지정 한 문자열 (Ere 매개 변수 가 지정 한 확장 정규 표현 식 이 나타 납 니 다) 에서 위치 (문자 형식) 를 되 돌려 주 고 1 부터 번 호 를 매기 거나 Ere 매개 변수 가 나타 나 지 않 으 면 0 (0) 으로 되 돌려 줍 니 다.RSTART 특수 변 수 를 반환 값 으로 설정 합 니 다.RLENGTH 특수 변 수 는 일치 하 는 문자열 의 길이 로 설정 하거나 일치 하 는 문자열 을 찾 지 못 하면 - 1 (마이너스 1) 로 설정 합 니 다.
split( String, A, [Ere] )
String 매개 변수 가 지정 한 매개 변 수 를 배열 요소 A [1], A [2],..., A [n] 로 나 누고 n 변수의 값 을 되 돌려 줍 니 다.이 구분 은 Ere 매개 변수 가 지정 한 확장 정규 표현 식 을 통 해 진행 되 거나 현재 필드 구분자 (FS 특수 변수) 로 진행 할 수 있 습 니 다 (Ere 매개 변수 가 없 으 면).문맥 에서 특정한 요 소 를 가리 키 지 않 는 한 숫자 값 이 있어 야 합 니 다. 그렇지 않 으 면 A 배열 의 요 소 는 문자열 값 으로 만 듭 니 다.
tolower( String )
String 인자 가 지정 한 문자열 을 되 돌려 줍 니 다. 문자열 의 모든 대문자 가 소문 자로 변 경 됩 니 다.대문자 와 소문 자의 매 핑 은 현재 언어 환경의 LCCTYPE 범주 정의.
toupper( String )
String 인자 가 지정 한 문자열 을 되 돌려 줍 니 다. 문자열 의 모든 소문 자 는 대문자 로 변 경 됩 니 다.대문자 와 소문 자의 매 핑 은 현재 언어 환경의 LCCTYPE 범주 정의.
sprintf(Format, Expr, Expr, . . . )
Format 매개 변수 가 지정 한 printf 하위 루틴 형식 문자열 에 따라 Expr 매개 변수 가 지정 한 표현 식 을 포맷 하고 마지막 으로 생 성 된 문자열 을 되 돌려 줍 니 다.
다음은 예 를 들 어 설명 한다.
1.gsub/sub
gsub 와 sub 의 차 이 는 전 자 는 모든 문 자 를 교체 하고 후 자 는 하나만 교체 하 는 데 있다. 이 점 은 php 의 preg 와 비슷 하 다.match_all 과 pregmatch:
- awk 'BEGIN{info="Hello 2012 11!";gsub(/[0-9]+/,"",info);print info}'
출력:
- Hello !
설명:
프로그램 은 모든 1 개 이상 의 숫자 를 비 워 두 기 때문에 남 은 것 은 문자, 빈 칸, 느낌표 뿐 입 니 다.
다음은 gsub 을 sub 로 바 꾼 후의 결 과 를 살 펴 보 겠 습 니 다.
- awk 'BEGIN{info="Hello 2012 11!";sub(/[0-9]+/,"",info);print info}'
출력:
- Hello 11!
설명:
위 에서 보 듯 이 첫 번 째 숫자 만 바 뀌 었 다.
2.index
문자 에서 처음으로 하위 문자열 이 나타 난 위 치 를 찾 습 니 다.
- awk 'BEGIN{info="Hello 2012 11!";print index(info, 11);}'
출력:
- 12
설명:
index 는 찾 은 문자열 의 출현 위 치 를 되 돌려 줍 니 다. 위 치 는 1 부터 이 며, 찾 지 못 하면 0 으로 돌아 갑 니 다.
3.length
문자열 이나 배열 길 이 를 가 져 옵 니 다.
- awk 'BEGIN{info="Hello 2012 11!";print length(info);}'
출력:
- 20
설명:
length 함수 가 문자열 의 길 이 를 되 돌려 줍 니 다.중국어 가 세 개의 바이트 를 차지 하 는 것 을 볼 수 있다.
4.substr
문자열 캡 처
- awk 'BEGIN{info="Hello 2012 11!";print substr(info,7,6);}'
출력:
-
설명:
7 번 위치 부터 6 자 를 뒤로 자 르 기 시 작 했 습 니 다. 주의해 야 할 것 은 다 중 바이트 문자 에 대해 서 는 어 지 러 운 코드 를 자 르 기 쉬 우 니 조심 하 세 요!이것 은 php 의 substr 와 유사 하지만 역방향 캡 처 는 지원 되 지 않 습 니 다.
5.match
일치 하 는 문자열 에 사용 합 니 다. 찾 을 수 있 으 면 그 위 치 를 되 돌려 줍 니 다. index 와 유사 합 니 다.
- awk 'BEGIN{info="Hello 2012 11!";print match(info,/2/);}'
출력:
- 7
설명:
match 는 정규 검색 을 지원 합 니 다. index 는 문자열 검색 만 지원 합 니 다. match 기능 이 더 강 합 니 다.
6.split
문자열 구분
- awk 'BEGIN{info="Hello 2012 11!";split(info, A);n=length(A);for(i=1;i<=n;i++) print A[i];}'
출력:
- Hello
- 2012
- 11!
설명:
split 는 구분자 가 지정 되 지 않 았 을 때 기본 필드 구분자 로 문자열 을 나 누 었 습 니 다. 절 분 된 데 이 터 는 A 배열 에 저장 되 었 습 니 다. length 는 배열 의 길 이 를 얻 었 고 1 부터 n 까지 순환 하여 모든 배열 요 소 를 출력 합 니 다.
7.tolower/toupper
문자열 대소 문자 변환 함수
- awk 'BEGIN{info="Hello 2012 11!";print tolower(info);print toupper(info);}'
출력:
- hello 2012 11!
- HELLO 2012 11!
설명:
tolower 는 문 자 를 모두 소문 자로 바 꾸 고, toupper 는 문 자 를 모두 대문자 로 바 꿉 니 다. 이것 은 php 의 strtolower 와 strtoupper 와 비슷 합 니 다.
8.sprintf/printf
sprintf 는 문자열 을 포맷 하고 결 과 를 되 돌려 줍 니 다. printf 는 출력 문자열 을 포맷 합 니 다.
- awk 'BEGIN{str=sprintf("%d %s", 32, "years old");printf("%.2f
", 3.1415926);print str;}'
출력:
- 3.14
- 32 years old
설명:
% d 정형,% s 문자열,%. 2f 는 소수점 뒤의 두 자리 부동 소수점 까지 정확 합 니 다. printf 는 직접 출력 합 니 다. sprintf 처리 후 결 과 를 str 에 저장 하고 print 로 str 를 출력 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JSON 입문 강좌 기초편 json 입문 학습 노트JSON: JavaScript Object Notation(JavaScript 객체 표현) JSON 인스턴스 JSON은 언어에 독립적: JSON은 Javascript 문법을 사용하여 데이터 대상을 설명하지만 JSON...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.