[ 0-9]: 숫자
[a-zA-Z0-9]: 문자 또는 숫자
-
와 일치합니다. : 공백을 제외한 임의의 문자 1개와 일치합니다.
-
[0 -f ]: 16진수
-
abc | def: abc 또는 def
-
a (bc | de) f: abcf 또는 adef
-
<: 단어의 첫 번째 단어 앞에는 일반적으로 공백 또는 특수 문자 구분을 위해 연속된 문자열은 단어로 처리됩니다.
- >: 단어 끝
-
[^expression]: 소문자를 제외한 모든 문자 등.
-
2 다음 기호는 일치 항목 수를 제어합니다.
- 해당 기호의 왼쪽에는 위의 첫 번째 지점에 표현식이 있어야 합니다.
- 표현식*: 0 또는 n자
- 표현식+ : 1 또는 n자
- 표현식? : 0 또는 1자
표현식 {n} : n자
표현식 {n:m} : n ~ m자
-
표현식 {n, }: n자 이상
【예】[a-z]*는 0개 이상의 소문자 일치를 의미합니다-
3. 시작과 끝의 문자 일치를 제어합니다
- ^표현: 머리가 일치합니다
-
Expression$: 꼬리가 일치함
-
2. Linux의 세 가지 주요 텍스트 처리 도구
1. egrep 필터링 도구
grep의 확장 버전, 정규 표현식을 사용할 수 있음 표현식
구문: -
egrep - '정규식' 옵션 파일 이름
옵션:
-n: 줄 번호 표시
-o: 일치하는 콘텐츠만 표시
-q: 자동 모드, 아니요 출력의 경우 실행 성공 여부, 즉 원하는 내용이 필터링되는지 여부를 판단하려면 $?를 사용해야 합니다.
-l: 일치하면 파일 이름만 인쇄됩니다. 실패하면 일반적으로 -rl을 함께 사용합니다. grep -rl 'root' /etc
-A: 일치에 성공하면 일치하는 줄과 다음 n줄이 함께 인쇄됩니다
- -B: 일치에 성공하면 일치하는 라인과 전후 n라인이 함께 인쇄됩니다.
-
-C: 일치에 성공하면 일치하는 라인과 전후의 n라인이 함께 인쇄됩니다. 함께 인쇄됩니다
-
--color
-
- c: 일치에 성공하면 일치하는 줄 수를 인쇄합니다.
-
-i: 대소문자 무시
-
-v: 부정, 일치하지 말고 : -w : 일치하는 단어
-
2. SED 스트림 편집기
문법 :
- 구문 1 : sed- 옵션 '숫자 위치 + 명령'파일 이름
옵션 :
- -n: 자동 모드, 출력 없음
- -e: 다중 편집, 명확하지 않음
-i: 출력 대신 파일 내용을 직접 수정
-r: 확장 모드 , 정규 표현식을 사용할 수 있습니다
-f: 파일 이름 지정, 새 파일에 작업 작성
위치 지정: ①번호 위치 지정(입력 줄 번호 위치 지정)
- 1 : 한 줄
- 1,3: 첫 번째 행부터 세 번째 행까지의 범위
- 2,+4: 행 뒤의 여러 행과 일치
4,~3: 네 번째 행부터 세 번째 행까지 다음 3의 배수
2~3: 두 번째 행 세 줄 간격으로 한 줄
$: 마지막 줄
-
1!: 첫 번째 줄 이외의 줄
[예] sed -n '1p' /etc/passwd ②정규식 위치 지정
- 정규식은 //
- 으로 래핑해야 합니다. 확장 정규식은 -r 매개변수 또는 escape
로 바꿔야 합니다. - 정규식을 사용할 수 있는 하위 패턴, 즉 괄호 () 교체, 1과 2는 하위 패턴을 나타낼 수 있습니다
[예] sed -r 's/(.)(.)/21/ file1은 일치의 첫 번째와 두 번째 부분을 바꾸는 것을 의미합니다
*greedy 옵션: g를 입력합니다. 이는 한 줄에서 일치하는 모든 항목을 바꾸는 것을 의미합니다.
명령:
- a ∶append,
- c ∶change,
d ∶ delete delete,
i ∶ Insert, i 뒤에 문자열이 올 수 있으며 이 문자열은 새 줄(현재는 이전 줄)에 나타납니다.
p ∶인쇄인쇄
s∶대체교체, 직접교체작업을 하시면 됩니다. 일반적으로 이 작업은 정규식과 쌍을 이룰 수 있습니다. 예를 들어, 1,20s/old/new/g
*s 명령 특별 지침: -
여러 명령을 추가하려면 {command 1: command 2: command 3}을 사용하세요.
- s 명령 구문: sed -r '명령 바꾸기 s/정규 표현식/내용 바꾸기/탐욕 옵션 g' 파일 이름3. Awk 텍스트 분석 도구
- 는 명령, 정규 표현식(/로 둘러싸여야 함), 비교 및 관계 연산으로 구성됩니다. 간격 기호를 정의하려면 옵션에서 -F 매개변수를 사용하세요.
$1, $2, $3 등의 순서를 사용하여 파일의 각 줄에서 공백으로 구분된 각 열의 다양한 필드를 나타냅니다. NF 변수는 현재 레코드의 필드 수를 나타냅니다. 옵션 매개변수 '논리판단{명령변수1, 변수2, 변수3}' 파일명
option
-F는 필드 구분자를 정의하며, 기본 구분자는 연속된 공백이나 탭
NR 현재 레코드 수(모든 파일이 연결된 후 통계)
FNR 현재 레코드 수(현재 파일에 대한 통계만 해당)
FS 기본 필드 구분 기호는 연속 공백 또는 탭입니다. 여러 개의 서로 다른 기호를 구분 기호로 사용할 수 있습니다. -F[:/]
OFS 출력 문자의 기본 구분 기호는 공백입니다
-
root=====x
NF 현재 읽은 행의 필드 수
ORS 기본 출력 레코드 구분 기호는 newline
[ORS 예] # awk - F: 'ORS="=== ===" {print $1,$2}' /etc/passwd-
root x=====bin x=====
FILENAME 현재 파일 이름
【예제 1】AWK 변수 사용
# awk '{print NR,FNR,$1}' file1 file2 2 2 bbbbb3 3
4 1 dddddd
5 2 eeeeee
6 3 ffffff
#
【【예제 2】 쉘 변수를 인용하는 방법# a = root# awk -v var = $ a -f : '$1 == var {print $0} ' /etc/passwd
또는 전체 명령을 분할하여 전달하여 셸 변수를 노출합니다.# awk -F: '$1 == "'$a'" {print $0} ' /etc/passwd# a=NF
# awk -F: '{print $'$a'}' /etc/passwd
논리 연산(연산을 위해 필드를 직접 참조할 수 있음)
= += -= /= *=: 할당
&& || !: 논리적 AND 논리적 또는 논리적 NOT
~ !~: 정규 일치 여부, 정규 일치는 /regular/ 로 묶어야 합니다.
- <<= > > = != ==: 문자열을 비교할 때 문자열은 큰따옴표로 묶어야 합니다.
- $: 필드 참조는 $로 추가해야 합니다. 변수 이름으로 직접 명명됩니다
- + - * / % + + --: 연산자
이스케이프 시퀀스
-
\ self
-
$ escape $
t 탭
- b 백스페이스
- r 캐리지 리턴 문자
- n 줄 바꿈 문자
- c 줄 바꿈 취소
- 자세한 내용은 다음을 참조하세요.
-
위 내용은 정규식의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!