grep 是一個文本過濾工具
egrp:基本正則表達式
fgrp:擴展正則表達式
grep的命令格式 ? ? “grep 目標 ? 文件”
grep還支持變量 ? ?“grep $ 變量 文件”
grep還支持命令 ? ?“grep 命令 ? 文件”
grep數標準輸入,所有可以和管道符結合
標準輸出 | grep標準輸入
“grep 命令 文件” grep命令格式的示例
“grep -v 目標 文件” 顯示不包含目標的其他內容 。 下面表示非#號開頭的行
“grep -i 目標 文件” 忽略目標的大小寫
“grep -n 目標 文件” 目標文件在第幾行,并顯示序列號
“grep -c 目標 文件” 查看目標這個有幾行
“grep -o 目標 文件” 只顯示相關的字符,一行的其他不顯示
“grep -q 目標 文件” 不顯示輸出的內容,可以用 echo $?查看, 非0代表沒有找到目標
“grep -A 目標 文件” A后面加個數字包含目標的后幾行
“grep -B 目標 文件” ?B后面加數字顯示包含目標的前幾行
“grep -C 目標 文件” C前面加個數字顯示包含目標的前后幾行
?
“grep -e 目標1 -e 目標2 文件” 包括目標1或者目標2 或者的關系,一行不顯示兩目標
“”grep -w 單詞 文件“” 在文件里面是單詞的目標
字母數字加下劃線都是字母的一部分,其他都不是字母的一部分
grep -f 后面是跟的文件,將目標放在幾個文件里面 ,然后執行grep -f
正則表達式
處理文本內容 通過特定的符號來匹配或者控制
BRE 基本正則表達式
ERE 擴展正則表達式
元字符分類:字符匹配 ,匹配次數, 位置錨定, 分組
字符匹配
. 表示文件內容任意一個字符“a..d” abcd 兩個..表示兩個字符。a代表一個字符,.代表一個字符,c代表一個字符
[ . ] 點放在中括號 代表.點的本意
轉義 \ . 代表. 點字符的本意,中間的點轉義到原來.的意思
grep “r[abc]t” 取中括號里面的任意的一個字符
grep “r[^abc]t” 除了中括號里面的任意字符
匹配次數 :某一個字符出現的次數
*表示字符前面出現任意次或者0次? *表示前面出現的相同字符是不確定的
.* 代表任意長度的任意字符串, .代表一個字符,* 表示字符前面出現任意次或者0次
\ ? 匹配字符前面出現一次或者0次
\ + 匹配字符前面出現一次或者一次以上
\ {數字 \ } 精確單詞匹配多少次,前面的o必須出現22次
\ {數字,\ } 大于多少次 ,前面的o必須出現10次以上
\ [數字 , 數字 \ } 前面取得數字必須出現的次數大于多少并小于多少次:
多個位置錨定
^ 表示行首 錨定 ^ root root開頭的行
$ 表示行尾 的行
? “\ < root” root位于一行的行左 以root詞開頭的行
? “\ > root” root位于一行的行左右 詞尾
“\ b目標 \b” 表示單詞的邊界
分組 表示的是一個單詞出現幾次
\ (wang\ ) 表示分組 , \ {3\ } 表示wang出現3次
后向引用 \1 必須和前面的目標一樣
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/95322