一、簡介
grep是用於顯示部分)匹配字串格式的行
家族:grep egrep fgrp
二、grep的使用方法
Usage: grep [options] PATTERN file..
options:
-i 忽略大小寫
--color 匹配部分高亮顯示
-o 只顯示匹配的部分
-n 顯示匹配的行及行數
-v 取反
-E 使用擴充的Regex
-A N 顯示匹配的行及匹配行後N行內容
-B N 顯示匹配的行及匹配行前的N行內容
-C N 顯示匹配的行及匹配行前和行後N行內容
基本Regex:REGularEXPression
①元字元:
. 任意的單個字元
[] 指定範圍內的單個字元
[^] 除了指定範圍內的單個字元
②字元個數
* 匹配前面的字元任意次
.* 任意長度的任一字元
\? 匹配前面的字元0次或1次
\{m,n\} 匹配前面的字元至少m次,至多n次
\{3\} 匹配前面的字元3次
\{1,\} 匹配前面的字元至少1次
③位置錨定
^ 行首
$ 行尾
^$ 空白行
\<或者\b 其後面的任一字元必須作為單詞的首部出現
\>或者\b 其前面的字元必須作為單詞的尾部結尾
\<root\> 匹配單詞root
注意:使用時候需要加“”
④分組
\(root\) 將root作為一個整體
\(root\)* root為整體可以出現任意次數
分組的反向參考:
\(root\).*\1 等效於\(root\).*\(root\)
\1 引用第一個)中的內容
\2 引用第二個)中的內容
....
擴充的Regex:
使用grep -E 或者 egrep
①元字元:
同基本Regex
②字元出現個數
*
?
+ 至少出現一次
{m,n} 同基本Regex一樣,只是少了轉義符號\
③位置錨定
^
$
\<
\>
④元組基本同基本Regex,只是少了轉義符而已)
()
\1
\2
⑤或“|”
dog|cat dog或者cat
練習:抓取ifconfig當中的ip地址x.x.x.x)
思路:x [1-9]|[1-9][0-9]|[1][0-9][0-9]|[2][0-5][0-5]
本文出自 “keepalive” 部落格,請務必保留此出處http://jefferyyu.blog.51cto.com/2843635/1300245