linux正規表示式

2021-07-25 08:00:26 字數 2437 閱讀 2392

【目的】

在使用grep、awk和sed命令時,需要使用正規表示式。

linux文字處理三劍客:

grep  : 文字過濾工具(模式:pattern)工具;

sed   :stream editor 流編譯器;文字編譯工具;

awk   :linux上的實現gawk,文字報告生成器(格式化文字);

【正規表示式】(regual expression regexp)

由一類特殊字元及文字字元所編寫的模式,其中有些字元不表示其字面意義,而是用於表示控制或通配的功能

分兩類:

基本正規表示式:bre 

擴充套件正規表示式:ere

基本正規表示式元字元:

字元匹配:

. : 匹配任意單個字元

[root@localhost etc]#grep "r..t" /etc/passwd

:匹配指定範圍內的任意單個字元

[root@localhost etc]#grep "r[[:alpha:]][[:alpha:]]t" /etc/passwd

[^] : 匹配指定範圍外的任意單個字元

[root@localhost etc]#grep "r[^[:alpha:]][[:alpha:]]t" /etc/passwd

[:digit:] , [:lower:]  [:upper:]  [:alpha:] [:alnum:] [:punct:] [:space:]

匹配次數: 用在指定其出現的次數的字元的後面,用於限制其前面字元出現的次數

例子內容:

abxy

aby***xxy

yab                  

*  :匹配其前面的字元任意次; 0,1,多次

[root@localhost ~]# grep "x*y" aaa

abxy

aby***xxy

yab

.*  :匹配任意長度的任意字元

[root@localhost ~]# grep "x.*y" aaa

abxy

***xxy

\?:匹配其前面的字元0次或1次;即前面的字元可有可無

[root@localhost ~]# grep "x\?y" aaa

abxy

aby***xxy

yab

\+ :匹配其前面的字元1次或多次;即前面的字元出現至少要1次或多次

[root@localhost ~]# grep "x\+y" aaa

abxy

***xxy

\ :匹配前面的字元m次

[root@localhost ~]# grep "x\y" aaa

***xxy

[root@localhost ~]# grep "x\y" aaa

abxy

***xxy

\ :匹配前面的字元至少m次 至多n次

[root@localhost ~]# grep "x\y" aaa

abxy

***xxy

[root@localhost ~]# grep "x\y" aaa

abxy

aby***xxy

yab[root@localhost ~]# grep "x\y" aaa

abxy

aby***xxy

yab

位置錨定:

^:行首錨定,用於模式的最左側

[root@localhost ~]# grep "^root" /etc/passwd

root:x:0:0:root:/root:/bin/bash

$:行尾錨定,用於模式的最右側

^pattern$:用pattern來匹配整行;

^$:空白行

\《或\b:詞首錨定 用於單詞模式的左側

\>或\b:詞尾錨定 用於單詞模式的右側

\:匹配完整單詞

分組及引用:

\(\):將乙個或多個字元**在一起 當作乙個整體進行處理

\(xy\)*ab

note:分組括號中的模式匹配到的內容會被正規表示式引擎自動記錄於內部的變數中,這些變數為;

\1:模式從左側起,第乙個左括號以及與之匹配的右括號之間的模式所匹配到的字元

\2 :模式從左側起,第二個左括號以及與之匹配的右括號之間的模式所匹配到的字元

[root@localhost ~]# grep "^\(r..t\).*\1" /etc/passwd

root:x:0:0:root:/root:/bin/bash

Linux正規表示式 編寫正規表示式

為了所有實用化的用途,你可以通過使用程式產生正確的結果。然而,並不意味著程式總是如你所願的那樣正確地工作。多數情況下,如果程式不能產生想要的輸出,可以斷定真正的問題 排除輸入或語法錯誤 在於如何描述想要的東西。換句話說,應該考慮糾正問題的地方是描述想要的結果的表示式。表示式不完整或者公式表示得不正確...

正規表示式 Linux

主要內容 1 正規表示式2 基礎3 擴充套件4 通配5 grep命令 正規表示式基礎 1 元字元 metacharacters 是用來闡釋字元表示式意義的字元,簡言之,元字元就是描述字元的字元,它用於對字元表示式的內容 轉換及各種操作資訊進行描述。正規表示式是由一串字元和元字元構成的字串,簡稱re ...

Linux正規表示式

正規表示式是一種符號表示法,用於識別文字模式。linux處理正規表示式的主要程式是grep。grep搜尋與正規表示式匹配的行,並將結果輸送至標準輸出。1.grep匹配模式 grep按下述方式接受選項和引數 其中,regex表示正規表示式 1 grep options regex files 其中op...