grep用法

一、前言

grep是功能強大的文本處理工具,全稱:global search regular expression and print out the line,grep一行一行使用正則表達式匹配文本,之后對匹配到的文本整行顯示(除非使用特定的選項取反,如 grep -v)。

二、grep用法

grep命令用法:        

   grep [OPTIONS] PATTERN [FILE…]

   grep [OPTIONS] [-e PATTERN | -f FILE] [FILE…]

為了使用grep用法,我們不得不先簡單學習下正則表達式

2.1、正則表達式用法

首先,我們要明白什么是正則表達式?所謂正則表達式就是使用單個字符串來描述、匹配一系列符合某個語法規則的字符串。正則表達式由一些普通字符和元字符組成。普通字符包括大小寫的字母和數字,而元字符則具有特殊的含義。

2.1.1、元字符用法

a:字符匹配

. 匹配任意單個字符 例如:grep roo. /etc/passwd
[] 匹配指定范圍內的任意單個字符 例如:grep [ro] /etc/passwd
[^] 取反 例如:grep [^ro] /etc/passwd

b:次數匹配

* 匹配任意次數 例如: grep roo* /etc/passwd
\? 匹配其前面字符出現0或者1次 例如: grep roo\? /etc/passwd
\{m\} 匹配其前面字符出現m次 例如: grep ro\{2\} /etc/passwd
\{m,\} 匹配其前面字符最少出現m次 例如: grep ro\{2,\} /etc/passwd
\{m,n\} 匹配其前面字符最少出現m次,最多n次 例如: grep ro\{2,3\} /etc/passwd
\{0,n\} 匹配其前面字符最多n次 例如: grep ro\{0,2\} /etc/passwd

c:位置錨定匹配

^ 行首錨定符 例如:grep ^root /etc/passwd
$ 行尾錨定符 例如:grep shell$ /etc/passwd
\< 詞首錨定符 例如:grep \<root /etc/passwd
\> 詞尾錨定符 例如:grep shell\> /etc/passwd

d:分組

\(\) 分組,分組中模式匹配的內容可被引用 例如:grep \(root\).*\1 /etc/passwd

e:引用

\# 引用分組中第#個內容(#為數字) 例如:grep \(root\).*\1 /etc/passwd

2.2、grep常用的選項

-v 反向選擇 例如:grep -v root /etc/passwd
-o 僅顯示匹配的字符串本身,而非所在行 例如:grep -o root /etc/passwd
-i 忽略大小寫 例如:grep -i root /etc/passwd
-E 支持使用擴展正則表達式 例如:grep -E (root).*\1 /etc/passwd
-A 后面n行 例如:grep -A 3 root /etc/passwd
-B 前面n行 例如:grep -B 3 mysql /etc/passwd
-C 前后各n行 例如:grep -C 3 mysql /etc/passwd

三、總結

grep用法其實并不難,難在正則表達式的使用,grep是非常強大的文本搜索工具,熟練使用grep工具有利于我們后續對文本文件的處理。

        

   

    



原創文章,作者:成吉思汗,如若轉載,請注明出處:http://www.www58058.com/7190

(0)
成吉思汗成吉思汗
上一篇 2015-08-24
下一篇 2015-08-24

相關推薦

  • redis-cli的一些有趣也很有用的功能

    redis-cli我們最常用的三個參數就是-h、-p、-a選項,分配用來指定連接的redis-server的host、port和登錄密碼。 通過redis-cli –help發現,redis-cli還提供了其他很多的參數和功能。 1)-x-x選項從標準輸入(stdin)讀取最后一個參數。 比如從管道中讀取輸入: echo -en “chen.qun” | r…

    Linux干貨 2015-03-16
  • linux下文件處理基礎命令(自己預習瞎學的)

                      Linux下文件處理基礎命令     1.創建文件   有時候我們會遇到需要創建一個空文件的情況。比如,應用程序可能希望在寫…

    2017-07-15
  • linux文件系統上的權限

    文件系統上的權限是指文件系統上的文件和目錄的權限,主要針對三類對象進行的(訪問者)進行的定義: 針對文件來說 r 使用工具cat nano去看文件里面內容的權限 w 可以修改文件的內容 x 二進制程序以及腳本需要發起系統調用,去啟動為一個進程 針對目錄來說 r 是否可以查看目錄里面的內容 有r權限的話 可以使用ls -l w 對目錄里面是否可以創建文件或者目…

    Linux干貨 2017-04-01
  • find命令之德.摩根定律及perm條件詳解

    (1)德.摩根定律        !A -a !B=!( A -o B )        !A -o !B=!( A -a B )        使用條件:條件中存在“非”、“與”…

    Linux干貨 2016-08-18
  • Shell腳本編程基礎之一

      Linux為高效管理系統,提供了CLI命令行接口,供用戶在命令提示符下輸入命令,它有很多bash shell基礎特,根據這些特性能夠很靈活的使用命令,也支持使同時輸入多個命令執行,命令之間用冒號分隔;但是要完成復雜多次重復性的操作,非常不便,系統管理工作變得很是繁忙,很難輕松完成工作任務;不過Linux的shell支持腳本編程,通過編寫純文本格…

    Linux干貨 2016-08-15
  • 第四周

    博客具體內容請移步博客園:http://www.cnblogs.com/ITOps/p/6227780.html

    Linux干貨 2016-12-27
欧美性久久久久