셸 프로 그래 밍 의 정규 표현 식

5657 단어 셸 스 크 립 트
1. 정규 표현 식 의 역할
  :            。        、  、     
  :                          。            、
  、       

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

좋은 웹페이지 즐겨찾기