1. 程式人生 > >正則表達式和sed的使用

正則表達式和sed的使用

正則表達式和sed的使用

1 字符串的組合表達有重復和邏輯兩種方法

2 重復

* 零次或多次匹配前面的字符或子表達式

+ 一次或多次匹配前面的字符或子表達式

? 零次或一次匹配前面的字符或子表達式

3 用法格式:grep ’字符串如se*’ 表名或文檔名

4 註意1加號和問號前面一定要加斜線如’se\+’’se\?’

5 括號和大括號加入到正則表達式中一定要加斜線如’\(se\)’*’\{se\}’

6 重復特定次數:[n,m] n重復最小次數 m重復最大次數

7 任意字符串的表式:

7.1 .* grep ’m.*c’ passwd 表示找出passwd中的所有以m開頭c結尾的內容,包括單詞和句子不論多長

7.2 而’m..c’的意思是找出所有以m開頭中間只有兩個單詞c結尾的內容

’\bm[a-z]*c\b’’m..c’的意思一樣

8 邏輯或的表達式:| 註意邏輯或的前面一定要加斜線 ’bin/\false\|true\)’ 意思是顯示所有bintrue的內容

9 案例

9.1 匹配4-10位的QQ號

grep ‘^[0-9]\{4,10\}$‘ 文件名

9.2 匹配15位或18位的身份證號(支持帶x)

grep ‘^([1-9]\[0-9]\{13\}\|[0-9]\{16\}\)[0-9xX]$‘ 文件名

9.3 匹配密碼,由數字、26個字母和下劃線組成

grep ‘\W\+$‘ 文件名

10 使用sed可以:

10.1 自動處理文件

10.2 分析日誌文件

10.3 修改配置文件

11 Sed的行處理:

11.1 Sed一次處理一行內容

11.2 Sed不改變文件內容,除非重定向

12 Sed的流處理編輯器:文本或管道輸入 讀入一行到模式空間(模式空間即為臨時緩沖區) sed命令處理 最後輸出到屏幕 重復讀入一行到模式空間 sed命令處理

13 Sed的文本處理:正則選定文本 sed進行處理

14 使用sed格式:

14.1 命令行格式:sed 參數 命令輸入的文件 (參數有-e-n-e一般用於調用兩個命令,-n一般用於匹配p的命令意思是打印相關的行)

(命令由行定位既正則+sed命令即操作)

14.2 腳本格式:sed -f參數 腳本文件 輸入的文件

15 查看打印的行號:nl 文件 | sed -n 要打印的行

正則表達式和sed的使用