정규 표현식과 삼총사 (그렙, AWK, 나오지도) 댓글

보웬 구조
정규식 란
기본 정규식
정규식 확장 된
문서의 처리와 관련된 형식

.grep

정규 표현식은 문자를 표현하는 데 사용됩니다,이 "규칙 문자열", 문자열 연산의 논리적 인 공식은 특정 미리 정의 된 문자의 조합, 이러한 특정 문자를 사용는 "문자열 규칙"을 형성하는 것입니다 문자열 필터 로직.

  • 시스템 관리자를위한 정규 표현식을 사용하여

상황에 따라 통화 시스템의 경우는 매일 생성 된 메시지 정보는 더 당신이 상상할 수없는 지점에, 그리고 것 때문에 "오류 메시지가 로그 파일"시스템이 모든 시스템에 의해 생성 된 메시지의 내용을 기록하는 것을 모두 알고, 물론, 이 시스템이 "***"레코드 데이터인지 포함

  • 정규 표현식의 광범위한 사용

처리 문자열을 프로그래밍 할 때, 문자열에 맞춰 몇 가지 복잡한 규칙을 찾을 필요가 종종있다. 정규 표현식 도구는 이러한 규칙을 설명하는 데 사용됩니다. 즉, 정규 표현식은 코드 텍스트 규칙을 기록하는 것입니다.

  • 정규 표현식과 사이에 리눅스의 쉘 역할
    시스템 관리 섹션에 대한 모두의 지식과 시스템

  • 확장 정규 표현식

정규식 정규식 연장 기재 : 다른 엄격함에 따라 일반 식 문자열 표현으로 분할. 문자열 처리를 간단한 설정 이외에 정규식을 연장 문자열 처리 될 수있다 기

  • 기본 정규 표현식

정규 표현식에 대한 언어의 1에 미치는 영향

두 언어의 zh_TW.big5 및 C의 출력은 다음이다 :
때 LANG = C 0 1 2 3 4 ... ABCD ... Z ABCD ... Z
LANG =의 zh_TW시 : 0 1 2 3 4 ... . C d 개의 C A A B B 형 D ... Z Z

정규 표현식과 삼총사 (그렙, AWK, 나오지도) 댓글

2. 정규 표현식은 세 부분이 있습니다

정규 표현식과 삼총사 (그렙, AWK, 나오지도) 댓글

다음과 같은 사례는 다음과 같습니다

[root@localhost ~]# grep -n "the" /etc/man_db.conf   
\\-n 显示行号  搜寻特定字符串
[root@localhost ~]# grep -vn 'the' /etc/man_db.conf 
\\反转查找 意思就是查找不是‘the’的行显示出来

[root@localhost ~]# grep -in 'the' /etc/man_db.conf 
\\取得不论大小写的 the 这个字串
[root@localhost ~]# grep -n 't[ae]se' /etc/man_db.conf 
\\想要搜寻 test 或 tast 这两个单字时,可以发现到

[root@localhost ~]# grep -n '[^g]oo' /etc/man_db.conf 
\\利用中括号【】来搜寻集合字符
\\^开头  $结束
[root@localhost ~]# grep -n '[0-9]' /etc/man_db.conf 
\\取得有数字的那一行

[root@localhost ~]# grep -n '^the' /etc/man_db.conf 
\\行首与行尾字符^ $  

中括号内的^表示反向搜寻
中括号外的^表示以……开头

[root@localhost ~]# grep -n '^[a-z]' /etc/man_db.conf 
\\查找开头为小写字母
[root@localhost ~]# grep -n '^[[:lower:]]' /etc/man_db.conf 
\\这和上面一条一样都是显示小写字母,可以看上面那个图
[root@localhost ~]# grep -n '^[^a-zA-Z]' /etc/man_db.conf 
\\不想要开头是英文字母

[root@localhost ~]# grep -n '\.$' /etc/man_db.conf 
\\找出来,行尾结束为小数点(.)的那一行

이 이스케이프 문자 (\)를 사용하는 것이 필요하기 때문에 소수점 다른 의미가 있음을 특히주의 특별한 의미에서 배출되는

윈도우 휴식 캐릭터 라인. (. ^ M의 $)
리눅스 줄 바꿈 문자. (. $)

** (진수) : 수단 "임의의 문자가 있어야"을 나타내며,

* (별의 수) : 양식의 조합, "무한대로 반복, 0 문자의 반복을 '수단을 의미합니다
**

[root@localhost ~]# grep -n 'g..d' /etc/man_db.conf 
\\查找g??d共有四个字符开头为g,结尾为d
[root@localhost ~]# grep -n 'ooo*' /etc/man_db.conf 
\\查找至少两个 o 以上的字串
\\注意,o*为一个单位,*代表重复前面的字母无限次
[root@localhost ~]# grep -n 'goo*g' /etc/man_db.conf 
\\字串开头与结尾都是 g,但是两个 g 之间仅能存在至少一个 o
[root@localhost ~]# grep -n '[]0-9[0-9]*' /etc/man_db.conf 
\\找出“任意数字”的行列
[root@localhost ~]# grep -n 'go\{2,5\}g' /etc/man_db.conf 
\\找出 g 后面接 2 到 5 个 o ,然后再接一个 g 的字串
[root@localhost ~]# grep -n 'go\{2,\}g' /etc/man_db.conf 
\\找出2 个 o 以上的 goooo....g

정규 표현식과 삼총사 (그렙, AWK, 나오지도) 댓글

정규 표현식과 삼총사 (그렙, AWK, 나오지도) 댓글

참고 : 일반 명령 행 명령에 "정규 표현식 특수 문자" "와일드 카드"는 와일드 카드가 중, 예를 들어, 동일하지 않은 수단 "문자의 무한 복수 0"을 나타냅니다 만, 정규 표현식 사이에, 그것은 수단 "0 이전 RE 캐릭터의 무한 반복에"입니다 -하지 같은 의미, 혼합하지 마십시오

두 .sed

语法如下:
[root@localhost ~]# ]sed [-nefr] [动作 ]
选项与参数如下:
-n :使用安静(silent)模式。在一般sed的用法中,所有来自STDIN 的数据一般都会被列出到屏幕上。但如果加上-n参数后,则只有经过sed特殊处理的那一行(或者动作)才会被列出来。
-e :直接在命令行界面上进行sed的动作编辑;
-f :直接将sed的动作写在一一个文件内, -f filename 则可以执行filename 内的sed动作;
-r:sed的动作支持的是延伸型正则表达式的语法。(默认是基础正则表达式语法)
-i:直接修改读取的文件内容,而不是由屏幕输出。

케이스 :

[root@localhost ~]# nl /etc/passwd | sed '2,5'd
\\删除2到5行内容
[root@localhost ~]# nl /etc/passwd | sed 'asd'
\\在所有后面行加上asd
[root@localhost ~]# nl /etc/passwd | sed '2a da ....\
aaa'
\\增将两行以上
[root@localhost ~]# nl /etc/passwd | sed '2,5c    ccccccccccccc'
\\第2-5行的内容取代成为ccccccccc
[root@localhost ~]# nl /etc/passwd | sed -n '5,7p'
\\仅列出5到7行的内容

데이터 검색의 일부와 교체 기능
SED의 / 대체 될 문자열 / 새 문자열 / G '
직접 파일의 내용을 수정하는 "-i"옵션의 SED,

  • 확장 정규 표현식

정규 표현식과 삼총사 (그렙, AWK, 나오지도) 댓글

정규 표현식과 삼총사 (그렙, AWK, 나오지도) 댓글

세 .awk

AWK는 데이터 분석 및 보고서 생성에 그렙의 단계 나오지 편집기, AWK를 찾기위한 강력한 도구입니다, 특히 강하다. awk는 간단히 기본 분리 공간으로, 각종 평가를 슬라이스 절단 부분의 각 행을 행함으로써 파일 라인을 판독한다.

语法如下:
[root@localhost ~]# awk '条 件类型1{动作1}条件类型2{动作2} .. ' filenamne
[root@localhost ~]# last -n 5 | awk '{print $1 "\t" $3}'
\\取出帐号与登陆者的 IP ,且帐号与 IP 之间以 [tab] 隔开

** AWK 전체 프로세스 흐름은 다음과 같습니다

  1. 첫 번째 행은 첫 번째 행의 데이터는 다른 변수 중 $ 0 $ 1, $ 2 .... 충전 판독되고;
  2. "작업"의 이상 판정에 대한 필요성을 제한 "조건 유형"기준;
  3. 모든 행동과 유형의 조건을하는;
  4. 데이터의 "라인"이후있을 경우 모든 데이터가 지금까지 읽을 때까지, 반복, 위의 1 ~ 3 단계를 반복합니다.
    **
[root@localhost ~]# last -n 5 | awk '{print $1 "\t lines: "NR"\t columns: "NF}'
root     lines: 1    columns: 10
root     lines: 2    columns: 10
(unknown     lines: 3    columns: 10
reboot   lines: 4    columns: 11
root     lines: 5    columns: 10
     lines: 6    columns: 0
wtmp     lines: 7    columns: 7
[root@localhost ~]# 
\\在awk内的NR,NF等变量要用大写,且不需要$!

정규 표현식과 삼총사 (그렙, AWK, 나오지도) 댓글

  • AWK 논리 연산 문자

정규 표현식과 삼총사 (그렙, AWK, 나오지도) 댓글

  • 상기의 논리 연산은보다 큰 이른바, 즉 적은 등 상기 화학식 결정되면, "=="통상적 인 표현에 기초하여 동일,보다;
  • 값이 주어진 경우, 예를 들면, 변수 설정에 대해, 오직 직접 사용 =.

추천

출처blog.51cto.com/14400213/2455650