셸 프로 그래 밍 의 정규 표현 식
5657 단어 셸 스 크 립 트
: 。 、 、
: 。 、
、
2. 정규 표현 식 과 마스크
2.1 어댑터
*
?
[]
연습: *
[root@catyuan ~]# ls t*
test1.log test1.sh test2.log test.log test.sh
연습
[root@catyuan ~]# touch test
[root@catyuan ~]# ls t???
test
[root@catyuan ~]# ls tes?
test
[root@catyuan ~]# ls test.??
test.sh
연습: []
[root@catyuan ~]# ls tes[ts]
test
[root@catyuan ~]# ls test1.[ls]og
test1.log
[root@catyuan ~]# touch test1
[root@catyuan ~]# touch test2
[root@catyuan ~]# ls test[12]
test1 test2
2.2 차이
4. 567917. 정규 표현 식 은 파일 에 조건 에 맞 는 문자열 을 일치 시 키 는 데 사 용 됩 니 다. 정규 표현 식 은 일치 하 는 문자열 을 포함 합 니 다.grep, awk, sed 등 명령 은 정규 표현 식 을 지원 할 수 있 습 니 다
4. 567917. 어댑터 는 조건 에 맞 는 파일 이름 에 사용 되 며, 어댑터 는 완전히 일치 합 니 다.ls, find, cp 이 명령 들 은 정규 표현 식 을 지원 하지 않 기 때문에 셸 글자 의 어댑터 만 사용 할 수 있 습 니 다
3. 기본 정규 표현 식
문자
역할.
*
이전 문자 가 0 번 이나 여러 번 일치 합 니 다.
.
일치 하 는 줄 바 꾸 기 를 제외 한 임의의 문자
^
행수 일치.예 를 들 어 ^ hello 는 hello 로 시작 하 는 줄 과 일치 합 니 다.
$
줄 의 끝 과 일치 하 다.hello $는 hello 로 끝 나 는 줄 과 일치 합 니 다.
[]
괄호 에서 지정 한 임의의 문자 와 일치 합 니 다. 한 글자 만 일치 합 니 다.예 를 들 어 [0 - 9] 는 임의의 숫자 와 일치 합 니 다.[a - z] [0 - 9] 소문 자 와 하나의 숫자 를 결합 하여 구 성 된 두 글자
[^]
괄호 가 있 는 문자 이외 의 임의의 문자 와 일치 합 니 다.예: [^ 0 - 9] 임의의 비 숫자 문자 와 일치 합 니 다.
\
전의 부.특수 기호의 의 미 를 취소 하 는 데 사용 합 니 다.
\ {n}
n 회
\ {n,\ }
앞의 문자 가 n 번 이상 나타 나 지 않 음 을 나타 낸다.
\ {n,m\ }
앞의 문 자 는 적어도 n 번, 최대 m 번 나타 나 는 것 을 나타 낸다.
3.1 "*": 이전 문자 가 0 번 또는 여러 번 일치 합 니 다.
"a*" ,
"aa*" a
"aaa*" a
"aaaa*" a
연습: *
[root@catyuan ~]# vim haha
a
aa
aaa
aaaa
aaaaa
##
b
bb
bbb
bbbb
bbbbb
: a*( )
[root@catyuan ~]# grep "a*" haha
a
aa
aaa
aaaa
aaaaa
b
bb
bbb
bbbb
bbbbb
: aa*
[root@catyuan ~]# grep "aa*" haha
a
aa
aaa
aaaa
aaaaa
: aaa*
[root@catyuan ~]# grep "aaa*" haha
aa
aaa
aaaa
aaaaa
3.2 ".": 줄 바 꾸 기 를 제외 한 임의의 문자 와 일치 합 니 다.
[root@catyuan ~]# vim haha
a
aa
aaa
aaaa
aaaaa
b
bb
bbb
bbbb
bbbbb
heeeel
haaaal
hsal
hsaal
[root@catyuan ~]# grep "h..l" haha
hsal
[root@catyuan ~]# grep "h...l" haha
hsaal
[root@catyuan ~]# grep "h....l" haha
heeeel
haaaal
[root@catyuan ~]# grep "h.*l" haha ## “.*”
heeeel
haaaal
hsal
hsaal
3.3 "^": 줄 의 첫머리 와 일치
[root@catyuan ~]# grep "^h" haha
heeeel
haaaal
hsal
hsaal
3. 4 "$": 줄 끝 에 일치 합 니 다 ($뒤에 쓰기)
[root@catyuan ~]# grep "b$" haha
b
bb
bbb
bbbb
bbbbb
연습: ^ $(빈 줄)
[root@catyuan ~]# grep -n "^$" haha #-n:
6:
12:
3.5 "[]": 괄호 중 임의의 문자 와 일치 합 니 다.
[root@catyuan ~]# vim haha
haal ##
[root@catyuan ~]# grep "h[as]al" haha
hsal
haal
[root@catyuan ~]# vim haha
12 ##
1
2
3
5abc
ab1
[root@catyuan ~]# grep "[0-9]" haha ##
12
1
2
3
5abc
ab1
[root@catyuan ~]# grep "^[0-9]" haha ##
12
1
2
3
5abc
[root@catyuan ~]# grep "[0-9]$" haha ##
12
1
2
3
ab1
3.6 [ ^ ] 、^ [ ]
^ [] :
[^]:
연습:
[root@catyuan ~]# grep "^[0-9]" haha ##
12
1
2
3
5abc
[root@catyuan ~]# grep "^[^0-9]" haha ##
a
aa
aaa
aaaa
aaaaa
b
bb
bbb
bbbb
bbbbb
heeeel
haaaal
hsal
hsaal
haal
ab1
연습: a - zA - Z 는 모든 영문 자 모 를 대표 합 니 다.
[root@catyuan ~]# grep "^[^a-zA-Z]" haha ##
12
1
2
3
5abc
3.7 "\": 전의 부호, 특수 기호 의 미 를 취소 합 니 다.
연습: "\. $": 모든 줄 의 끝 과 일치 합 니 다.
[root@catyuan ~]# vim haha
a. ##
b.
c..
[root@catyuan ~]# grep "\.$" haha
a.
b.
c..
3.8 "\ {n \}": 앞의 문자 가 마침 n 번 나 타 났 습 니 다 (문제 가 있 습 니 다. n 뒤에 추가 하면 효과 가 같 습 니 다)
연습:
[root@catyuan ~]# grep "a\{2\}" haha ## a 2
aa
aaa
aaaa
aaaaa
haaaal
hsaal
haal
[root@catyuan ~]# grep "[0-9]\{2\}" haha ## 2
12
3.9 "\ {n, \}": 앞의 문자 가 n 번 이상 나타 나 지 않 습 니 다.
[root@catyuan ~]# grep "a\{2,\}" haha
aa
aaa
aaaa
aaaaa
haaaal
hsaal
haal
3.10 "\ {n, m \}": 앞의 문 자 는 적어도 n 번, 최대 m 번 나타 납 니 다.
[root@catyuan ~]# grep "ha\{1,3\}l" haha # h l a, 3 a
haal
[root@catyuan ~]# grep "ha\{1,5\}l" haha
haaaal
haal
[root@catyuan ~]# grep "ha\{1,4\}l" haha
haaaal
haal
연습 완료 후 파일 내용 비우 기
4. 정규 표현 식 사례
4.1 일치 날짜, 형식 은 YYYY - MM - DD
[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\} ## 4 - 2 - 2
연습:
[root@catyuan ~]# vim haha
20190613
2019-06-13
[root@catyuan ~]# grep "[0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}" haha
2019-06-13
4.2 일치 IP 주소
[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}
연습 하 다.
[root@catyuan ~]# vim haha
172.24.8.11
192.168.0.12
[root@catyuan ~]# grep "[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}.[0-9]\{1,3\}" haha
172.24.8.11
192.168.0.12
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
셸 스 크 립 트 (다 중 스 레 드 대량 생 성 사용자)예 를 들 어 백업 데이터 베 이 스 는 100 개의 라 이브 러 리 가 있 고 정상 적 인 백업 효율 이 매우 낮 습 니 다.다 중 스 레 드 가 있 으 면 백업 하 는 데 10 시간 이 걸 릴 수도 있 었 는데 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.