中文字幕亚洲第一精品|精品国产免费一区二区|久久婷婷五月六月综合版|中文字幕熟妇久久久人妻|久久综合精品国产一区无码|国产成人精品永久免费视频|午夜亚洲国产精品理论片a级|久久精品一区二区三区无码护土

 訪問手機版  

Linux常用命令|Linux培訓學習|考試認證|工資待遇與招聘,認準超級網(wǎng)工!

招聘|合作 登陸|注冊

網(wǎng)絡工程師培訓

當前位置:網(wǎng)絡工程師 > 技術課程 > linux > 熱點關注 > linux常用命令

linux命令之grep

時間:2018-12-04

作為linux中最為常用的三大文本(awk,sed,grep)處理工具之一,掌握好其用法是很有必要的。

首先談一下grep命令的常用格式為:grep [選項] ”模式“ [文件]

grep家族總共有三個:grep,egrep,fgrep。

1、直接輸入要匹配的字符串,這個可以用fgrep(fast grep)代替來提高查找速度,比如我要匹配一下hello.c文件中printf的個數(shù):grep -c "printf" hello.c

2、使用基本正則表達式,下面談關于基本正則表達式的使用:

匹配字符:

. :任意一個字符。

[abc] :表示匹配一個字符,這個字符必須是abc中的一個。

[a-zA-Z] :表示匹配一個字符,這個字符必須是a-z或A-Z這52個字母中的一個。

[^123] :匹配一個字符,這個字符是除了1、2、3以外的所有字符。

對于一些常用的字符集,系統(tǒng)做了定義:

[A-Za-z] 等價于 [[:alpha:]]

[0-9] 等價于 [[:digit:]]

[A-Za-z0-9] 等價于 [[:alnum:]]

tab,space 等空白字符 [[:space:]]

[A-Z] 等價于 [[:upper:]]

[a-z] 等價于 [[:lower:]]

標點符號 [[:punct:]]

匹配次數(shù):

\{m,n\} :匹配其前面出現(xiàn)的字符至少m次,至多n次。

\? :匹配其前面出現(xiàn)的內容0次或1次,等價于\{0,1\}。

xx=amount//任意匹配字符或字符串【*】等價于{0,} “*”星號前面至少必須有一個字符,任意匹配時可以用“.”代替字符 “*”星號前面不能用限定符{...}及其簡寫形式xx = "at act ant amount".match(/a*t/gi)。

如果我們要將他們作為普通的字符來使用就要在這些字符前面加上/.所以如果我們要查找一個$字符,我們就要使用/$來進行查找.。

這時我們可以使用范圍作用符[].范圍作用符可以匹配一系字符中的一個.例如[aeiou]只匹配一個小寫元音字符.所以表達式t[aeiou]n可以匹配tan,ten,tin,ton,tun.。

這是匹配任意字符 (包括換行符) 的常見做法. (而點號 . 則匹配換行符以外的所有字符). p.128 在 perl 里, 注釋也算是一種空白.。

位置錨定:

^ :錨定行首

$ :錨定行尾。linux命令技巧:"^$"用于匹配空白行。

\b或\<:錨定單詞的詞首。如"\blike"不會匹配alike,但是會匹配liker

\b或\>:錨定單詞的詞尾。如"\blike\b"不會匹配alike和liker,只會匹配like

\B :與\b作用相反。

分組及引用:

\(string\) :將string作為一個整體方便后面引用

\1 :引用第1個左括號及其對應的右括號所匹配的內容。

\2 :引用第2個左括號及其對應的右括號所匹配的內容。

\n :引用第n個左括號及其對應的右括號所匹配的內容。

3、擴展的(Extend)正則表達式(注意要使用擴展的正則表達式要加-E選項,或者直接使用egrep):

匹配字符:這部分和基本正則表達式一樣

匹配次數(shù):

* :和基本正則表達式一樣

? :基本正則表達式是\?,二這里沒有\(zhòng)。

{m,n} :相比基本正則表達式也是沒有了\。

+ :匹配其前面的字符至少一次,相當于{1,}。

位置錨定:和基本正則表達式一樣。

分組及引用:

(string) :相比基本正則表達式也是沒有了\。linux命令

\1 :引用部分和基本正則表達式一樣。