쉘 기본 사항(3)

목차

하나, 정규 표현식

1. 기본 규칙

2. 확장된 정규화

3. 일반적인 정규식

2. 파일 조작 사총사

1, 고급 그렙

2.egrep

3, 고급 찾기

4, sed

5,아크


하나, 정규 표현식

1. 기본 규칙


txt |         grep -n 'wo\{2,5\}d' 고양이 test.txt | grep -n 'wo\{2,\}d'













2. 확장된 정규화

a) +, 이전 문자 중 하나 이상 반복
    cat test.txt | grep -nE 'wo+d' 또는
    cat test.txt | egrep -n 'wo+d'
b) ?, 0 또는 이전 문자 중 하나 문자
    cat test.txt | egrep -n 'bes?t'
c)|, 여러 문자를 찾으려면 또는 사용
    cat test.txt | egrep -n 'of|is|on'
d) (), 그룹 문자 찾기 String
    cat test .txt | egrep -n 't(a|e)st'
e)()+, 여러 반복 그룹 식별
    cat test.txt | egrep -n 'A(xyz)+C'

3. 일반적인 정규식

3.1 숫자
    "^[0-9]*[1-9][0-9]*$" //양의 정수  
    "^((-\d+)|(0+))$" //양이 아닌 정수 ( 음의 정수 + 0)  
    "^-[0-9]*[1-9][0-9]*$" // 음의 정수  
    "^-?\d+$" // 정수 
    "^\d+(\.\ d+ )?$" //음수가 아닌 부동 소수점 수(양의 부동 소수점 수 + 0)  
    "^(([0-9]+\.[0-9]*[1-9][0-9]* )|([ 0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)) $” // 양의 부동 소수점 수 
    "^((-\d+(\.\d+)?)|(0+(\.0+)?))$" // 양이 아닌 부동 소수점 수(음의 부동 소수점) 숫자 + 0) "^( 
    - ?\d+)(\.\d+)?$” // 부동 소수점 숫자 

3.2 문자열
    "^[AZ]+$" //26개의 영문 대문자로 구성된 문자열  
    "^[az]+$" //26개의 영문 소문자로 구성된 문자열  
    "^[A- Za-z0-9]+ $” //숫자와 영문 26자로 구성된 문자열  
    “^\w+$” //숫자, 영문 26자 또는 밑줄로 구성된 문자열

3.3이메일
    "^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$" //이메일 주소 "^([  
    w -.]+)@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|(([w-] +.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$” //이메일 

3.4Url 
    “^[a-zA-z]+://(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$” //URL 

3.5IP
    “^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[ 0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d| 25[0-5])$” //IP 위치

3.6Tel 
    /^((\+?[0-9]{2,4}\-[0-9]{3,4}\-)|([0-9]{3,4}\-)) ?([0-9]{7,8})(\-[0-9]+)?$/ //전화번호

3.7 날짜 확인

   /^(d{2}|d{4})-((0([1-9]{1}))|(1[1|2]))-(([0-2]([1- 9]{1}))|(3[0|1]))$/ // 연-월-일 yyyy-MM-dd / yy-MM-dd 형식 "^[0-9]{4}-
   ( (0([1-9]{1}))|(1[1|2]))-(([0-2]([0-9]{1}))|(3[0|1] ))$" // 연-월-일 yyyy-MM-dd 형식
  /^((0([1-9]{1}))|(1[1|2]))/(([0-2 ]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$/ // 월/일/년

2. 파일 조작 사총사

1, 고급 그렙


    옵션 

      -r 지정된 디렉터리의 모든 파일을 재귀적으로 검색합니다.
        -l 파일 내용이 아닌 지정된 키워드와 일치하는 파일 이름만 표시합니다.
    사례
        보기 /etc 디렉터리에서 bash를 포함하는 모든 파일 이름을 봅니다.
        grep -rl bash /etc

2.egrep


    정규식에 대한 완벽한 지원

3, 고급 찾기


    3.1 권한으로 검색 -perm
    3.2 타임스탬프로 검색
        -atime
        -mtime
        -ctime
  3.4 -exec
        find /var/spool/mail -type f -exec rm -rf {} \;
   3.5 xargs
        find /var/spool/mail -type f | xargs rm -rf

4, sed

4.1 구문
    sed [옵션] '작업' 매개변수 
    sed [옵션] -f 스크립트파일 매개변수

4.2 옵션
    -e: 지정된 명령어나 스크립트로 처리함을 나타냅니다
    . -f: 스크립트 파일을 지정합니다.
    -h: 도움말
    -n: 처리된 결과만 표시함을 나타냅니다
    . -i: 텍스트 파일을 직접 편집합니다
    . -r: 확장 일반 지원

 4.3 작동

a: 추가, 현재 행 아래 행에 지정된 내용 추가
c: 바꾸기, 선택한 행 바꾸기
d: 삭제, 지정된 행 삭제
i: 삽입, 선택한 행 위에 행 삽입
p: 인쇄
s: 바꾸기, 바꾸기 지정된 행 문자
y: 문자 변환

5,아크

5.1 구문
    awk 옵션 '패턴 또는 조건 {편집 명령}' file1 file2 ...
    awk -f 스크립트 파일 file1 file2 ...

5.2 옵션

-F는 각 줄의 구분 기호를 지정하며
기본 구분 기호는 공백입니다.

5.3 내장 변수

FS: 각 라인의 구분 기호 지정
NF: 현재 처리 라인의 필드 수 지정
NR: 현재 처리 라인의 라인 번호
$0: 현재 처리 라인의 전체 라인 내용
$n: 현재 처리 라인의 n번째 필드 처리 중
FILENAME: 처리 중인 파일 이름
RS: 데이터 레코드 구분 기호, 기본값은 \n

5.4 사례

a) awk '{print}' test.txt를 cat     awk 'NR>=1&&NR<=3{print}' test.txt      awk 'NR==1,NR==3{print}' test와 #
    동등한 줄로  출력합니다. .txt #1~3줄 인쇄     awk 'NR%2==0{print}' test.txt #짝수 줄 인쇄 b) 세그먼트별 출력은     기본적으로 "space" 세그먼트로 출력됩니다!     ifconfig ens33 |awk '/netmask/{print $2}' #filter IP 주소     cat /etc/shadow | awk -F : '$2=="!!"{print $1}' # 시스템에 로그인할 수 없는 사용자를 인쇄합니다. c) 쉘 명령 호출     cat /etc/passwd | awk -F : '/bash$/{print | "wc -l"}' /etc/passwd #시스템에 로그인할 수 있는 사용자 수 통계    








Supongo que te gusta

Origin blog.csdn.net/mengjialiang2002/article/details/132415014
Recomendado
Clasificación