正規表示法RE
1. ^開頭字串
2. 結尾字串$
3. . 任意字元
4. [字元集合] => 取一個字元 ex: [0-9]
5. [^字元集合] => 反集合取一字元
6. \{n\} => 出現n次
7. \{n,m\} => 出現n~m次
8. \跳托字元
9.* 表示0~多個字元
? 表示0或1次
+ 表示 >=1 次以上 這是擴充型 要用egrep
10. \<單字\> 找文章單字用的
\< 開頭單字
\> 結尾單字
ex: 找 ip
192.168.32.44
grep '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}' XXX
ex: 找電話
0944-123456
grep '09[0-9]\{2\}-[0-9]\{6\}' XXX
ex: 日期 月-日-年
12-22-97
grep '[01][0-9]-[0-3][0-9]-[0-9]\{\2}' XXX
ex: 日期 月-日-年 改成 年-月-日
用()來區分項次
12-22-97
sed 's/RE/新字串/'
sed 's/\([01][0-9]\)-\([0-3][0-9]\)-\([0-9]\{\2}\)/\3-\1-\2/' XXX
ex:日期 沒加g只會改第一個
12-22-97 09-15-98
sed 's/RE/新字串/g'
sed 's/\([01][0-9]\)-\([0-3][0-9]\)-\([0-9]\{\2}\)/\3-\1-\2/g' XXX
ex:電話 02-21234567 改成(02)21234567
sed 's/\(02\)-\([0-9]\{8\}\)/(\1)\2/g' XXX
ex:電話 02-21234567 改成(02)2123-4567
sed 's/\(02\)-\([0-9]\{4\}\)\([0-9]\{4\}\)/(\1)\2-\3/g' XXX
ex:e-mail 帳號@字串.xxx.xxx (xxx可能好幾次)
grep '[a-z,A-Z,0-9][a-z,a-Z,0-9,_,.]*@[a-z,A-Z,0-9].*\..*' test1
================
grep
-n 顯示列號
-c 顯示列數
-i 忽略大小寫
-l 只顯示檔名
-o 只顯示比對到的RE
-v 顯示不符合的
沒有留言:
張貼留言