正則表達式和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\)’ 意思是顯示所有bin或true的內容
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的命令意思是打印相關的行)
14.2 腳本格式:sed -f參數 腳本文件 輸入的文件
15 查看打印的行號:nl 文件 | sed -n 要打印的行
正則表達式和sed的使用