Zsh 개발 가이드 (네 번 째 문자열 처리 어댑터)
문자열 처리 시리즈 의 세 번 째 글 입 니 다.앞의 두 편 은 기본적으로 문자열 처리 에서 자주 사용 되 는 동작 을 덮어 쓰 지만 문자열 일치 에 있어 서 는 자세히 전개 되 지 않 았 습 니 다.
마스크 (glob) 는 셸 의 중요 한 개념 으로 정규 표현 식 의 간략화 버 전 으로 볼 수 있 습 니 다.어댑터 는 문자열 일치 와 파일 이름 검색 등에 매우 유용 합 니 다.이 편 은 문자열 에 맞 는 용법 만 을 말 합 니 다.
어댑터 의 기본 용법
이전에 문자열 일치 판단 을 말 할 때, 어댑터 가 나 타 났 는데, 바로
*$str"*
양쪽 의 별표 입 니 다.% str1=abcd
% str2=bc
#
% [[ "$str1" == *"$str2"* ]] && echo good
good
#
% [[ *"$str2"* == "$str1" ]] && echo good
별 번 호 는 임의의 수량 (0 개 포함) 과 일치 하 는 임의의 문자 입 니 다.
#
% [[ abcd == ab?? ]] && echo good
good
#
% [[ abcd == abc[bcd] ]] && echo good
good
# ^,
% [[ abcd == abc[^de] ]] && echo good
% [[ abcd == abc[^ce] ]] && echo good
good
#
% [[ a4 == [a-b][2-5] ]] && echo good
good
# ,
% [[ B4 == [a-cdddA-B][2-5] ]] && echo good
good
#
% [[ 123 == 12<3-4> ]] && echo good
good
#
% [[ 123 == <100-200> ]] && echo good
good
# , 0,
% [[ 123 == <100-> && 123 == ]] && echo good
good
# , 0
#
# [[ 123 == ]] && echo good
good
# ( 1 | 2 | ... ) ,
% [[ ab == (aa|ab) ]] && echo good
good
# - ^, ,
% [[ -^3 == [a-c-][3^-][3^-] ]] && echo good
good
이상 은 어댑터 의 기본 용법 입 니 다. 총괄 해 보 겠 습 니 다.
어댑터
속뜻
*
임의의 문자
?
임의의 문자
[abcd]
abcd 의 임의의 문자
[^abcd]
abcd 를 제외 한 임의의 문자
[a-c]
a 와 c 사이 의 문자
[a-cB-Dxyz]
a 와 c, B 와 D 사이 및 xyz 의 문자
<1-100>
1 과 100 사이 의 정수
0 과 50 사이 의 정수
<100->
100 이상 의 정수
임의의 정수 와 0
([a-c]|<1-100>)
a 와 c 사이 의 한 글자 또는 1 과 100 사이 의 정수
강화 판 어댑터
Zsh 는 강화 판 어댑터 도 지원 하 며 기능 이 더 많 습 니 다.강화 판 어댑터 를 사용 하려 면 코드 에
setopt EXTENDED_GLOB
를 추가 해 야 한다.어댑터
속뜻
일치 하 는 샘플
^abc
abc 를 제외 한 임의의 문자열
aaa
abc^abc
abc 로 시작 하지만 뒤쪽 은 abc 문자열 이 아 닙 니 다.
abcabd
a*c~abc
a * c 에 맞 지만 abc 문자열 은 아 닙 니 다.
adc
a#
임의의 수량 (0 포함) 개 a
aaa
b##
하나 이상 b
b
(ab)##
하나 이상 ab
abab
(#i)abc
대소 문자 abc 무시
AbC
(#i)ab(#I)c
대소 문자 ab 다음 c 무시
ABc
(#l)aBc
a 와 c 는 대소 문 자 를 무시 하지만 B 는 대문자 aBc 가 필요 합 니 다.
aBC
(#a1)abc
한 글자 의 abc
a2c 또는 ab 또는 abcd
그 밖 에 더 고 급 스 러 운 용법 도 있 으 니 잠시 생략 하 세 요.
총결산
문자열 의 내용 은 먼저 일 단락 되 었 으 나 그 후의 글 은 문자열 과 계속 관련 되 었 습 니 다. 배열 과 해시 표 의 내용 은 보통 문자열 이 고 디 렉 터 리 파일 을 처리 할 때 도 대량의 문자열 작업 과 관련 되 기 때문에 새로운 문자열 처리 방법 이 있 을 것 입 니 다.또한 문자열 을 처리 하 는 새로운 방법 이나 기 교 를 발견 하면 이 몇 편의 글 을 업데이트 할 것 입 니 다.
레 퍼 런 스
http://www.bash2zsh.com/zsh_refcard/refcard.pdf
본 고 는 더 이상 업데이트 되 지 않 습 니 다. 모든 시 리 즈 는 여기 서 유지 보 수 를 업데이트 합 니 다: github. com/goreliu/zshguide
유 료 로 Windows, Linux, Shell, C, C++, AHK, Python, JavaScript, Lua 등 분야 관련 문 제 를 해결 하고 유연 하 게 가격 을 책 정 합 니 다. 상담 을 환영 합 니 다. 위 챗 ly 50247.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.