grep用法大全

2021-02-19 百邁客醫學

在Linux系統中, 提取命令有很多,比如我們熟悉的cut(列操作),sed(行操作),awk(強大的文本分析操作),以及另一個使用頻率非常高的grep命令。今天小編來說道一下grep指令。

grep命令可對文本文件進行模式查找。如果找到匹配模式,grep列印包含模式的所有行。grep檢索的條件是多種多樣的,甚至還可以和正則表達式合作來檢索。

grep [-abcEFGhHilLnqrsvVwxy][-A<顯示列數>][-B<顯示列數>][-C<顯示列數>][-d<進行動作>][-e<範本樣式>][-f<範本文件>][--help][範本樣式][文件或目錄...]

左右滑動查看

-a 或 --text : 不要忽略二進位的數據。 
-A<顯示行數> 或 --after-context=<顯示行數> : 除了顯示符合範本樣式的那一列之外,並顯示該行之後的內容。 
-b 或 --byte-offset : 在顯示符合樣式的那一行之前,標示出該行第一個字符的編號。 
-B<顯示行數> 或 --before-context=<顯示行數> : 除了顯示符合樣式的那一行之外,並顯示該行之前的內容。 
-c 或 --count : 計算符合樣式(匹配行)的行數。 
-C<顯示行數> 或 --context=<顯示行數>或-<顯示行數> : 除了顯示符合樣式的那一行之外,並顯示該行之前後的內容。 
-d <動作> 或 --directories=<動作> : 當指定要查找的是目錄而非文件時,必須使用這項參數,否則grep指令將回報信息並停止動作。
-e<範本樣式> 或 --regexp=<範本樣式> : 指定字符串做為查找文件內容的樣式。 
-E 或 --extended-regexp : 將樣式為延伸的普通表示法來使用。 PATTERN 是一個可擴展的正則表達式(縮寫為 ERE)
-f<規則文件> 或 --file=<規則文件> : 指定規則文件,其內容含有一個或多個規則樣式,讓grep查找符合規則條件的文件內容,格式為每行一個規則樣式。 
-F 或 --fixed-regexp : 將樣式視為固定字符串的列表。 
-G 或 --basic-regexp : 將樣式視為普通的表示法來使用。 
-h 或 --no-filename : 在顯示符合樣式的那一行之前,不標示該行所屬的文件名稱。 
-H 或 --with-filename : 在顯示符合樣式的那一行之前,表示該行所屬的文件名稱。 
-i 或 --ignore-case : 忽略字符大小寫的差別。 
-l 或 --file-with-matches : 列出文件內容符合指定的樣式的文件名稱。 
-L 或 --files-without-match : 列出文件內容不符合指定的樣式的文件名稱。 
-n 或 --line-number : 在顯示符合樣式的那一行之前,標示出該行的列數編號。 
-o 或 --only-matching : 只顯示匹配PATTERN 部分。 
-q 或 --quiet或--silent : 不顯示任何信息。 
-r 或 --recursive : 此參數的效果和指定"-d recurse"參數相同。 
-s 或 --no-messages : 不顯示錯誤信息。 
-v 或 --revert-match : 顯示不包含匹配文本的所有行。 
-V 或 --version : 顯示版本信息。 
-w 或 --word-regexp : 只顯示全字符合的列。 
-x --line-regexp : 只顯示全列符合的列。 
-y : 此參數的效果和指定"-i"參數相同。 

左右滑動查看

最開始要講的是雙引號引用。在使用grep命令時,輸入的字符串最好將用雙引號括起來。例如:「my interest」。如果不用雙引號將其括起來,那麼單詞interest將被誤認為是一個文件,查詢結果將返回「文件不存在」的錯誤信息。不過在調用模式匹配時,使用單引號。

1、查詢多個文件


 grep 「sort」 *.txt   (在當前目錄下所有的txt文件中查找字符串「sort」)

2、grep "SLC8A1" circRNA_info.txt  (檢索circRNA_info.txt文件中包含字符串」SLC8A1「的行)

-c參數表示:計算符合樣式的行數(即統計包含字符串」SLC8A1「的行數);

-n參數表示:顯示滿足匹配模式的所有行的行數;

-v參數表示:顯示非匹配行(即不包含字符串」SLC8A1「的行)

3、-A參數的使用:對於fasta文件特別好用

4、精準匹配

大家已注意到,在上面的例子中,抽取字符串「10」。返回結果包含很多包含「10」的其他字符串,實際上應精確抽取只包含10的行,應該是最後一條命令操作(在每個匹配模式中抽取字符串(前)後有一個<Tab>鍵)。

 -P參數表示:PATTERN 是一個Perl正則表達式,(你會發現如果你不加該參數,無法精準確定該行)。

另外,使用grep抽取精確匹配的一種更有效方式是在抽取字符串後加「\>」。(註:上圖第二條指令,不過好像只是把匹配模式位於特殊位置的字符串取出來了。我也是第一次用,如果有更好的解釋,留言告訴我。)

5、grep和正則表達式


 匹配任意字符:([]來指定字符串範圍;如要精準匹配,類似第二條命令)

匹配行首:

使用grep匹配「與」或者「或」模式:

一個簡單的入門介紹就到這裡啦,想要了解更多Linux操作命令,請持續關注我們呦~~

相關焦點

  • 【Linux命令】 grep命令基本用法
    grep命令可以說是Linux下面最常用的文本處理工具了,那麼究竟我們可以用grep命令做什麼了?好了,現在我們可以說說grep了,其實很簡單,它的功能和前面所講windows下的組合鍵Ctrl+F類似,都是方便我們用來搜索文本的。 既然grep這麼有用,那麼我們現在一起來學習它,首先準備一個測試文件用來說明grep的用法,如下圖所示,各位看官就不要糾結文件內容,內容沒有任何意義,純屬只是用來驗證grep用法的。
  • Linux常用命令 - grep
    grep 命令代表「全局正則表達式 print」 ,它是 Linux 中最強大和最常用的命令之一。1mxfNjgrep 在一個或多個輸入文件中搜索與給定模式匹配的行,並將每個匹配行寫入標準輸出。如果沒有指定文件,grep 將從標準輸入讀取,這通常是另一個命令的輸出。
  • 運維丨Linux系統 grep命令用法詳解
    在Linux系統下grep命令的功能非常的強大,其作用是查找整個文件裡符合條件的關鍵字,grep命令在查找關鍵字時,只要查找到包含該關鍵字的行,就會把該行所有的內容全部顯示出來。在使用grep命令時,如果配合管道符使用的話,功能會更加的強大。
  • grep 中文man頁面
    NAMEgrep, egrep, fgrep - 列印匹配給定模式的行 總覽 SYNOPSISgrep [options] PATTERN [FILE...] grep [options] [-e PATTERN | -f FILE] [FILE...]
  • Linux之grep的使用
    規則表達式:grep的規則表達式:^  #錨定行的開始 如:'^grep'匹配所有以grep開頭的行。    $  #錨定行的結束 如:'grep$'匹配所有以grep結尾的行。    .  #匹配一個非換行符的字符 如:'gr.p'匹配gr後接一個任意字符,然後是p。
  • 第296天:grep命令
    grep命令grep命令用於查找文件裡符合條件的字符串,如果發現某文件的內容符合所指定的模式,grep
  • 每天一個 Linux 命令:grep 命令
    4.規則表達式:grep的規則表達式:^  #錨定行的開始 如:'^grep'匹配所有以grep開頭的行。    $  #錨定行的結束 如:'grep$'匹配所有以grep結尾的行。    .  *  #匹配零個或多個先前字符 如:'*grep'匹配所有一個或多個空格後緊跟grep的行。    .*   #一起用代表任意字符。   []   #匹配一個指定範圍內的字符,如'[Gg]rep'匹配Grep和grep。
  • Linux文本處理三劍客之grep
    >正則表達式引擎:grep [OPTIONS] [PATTERN] [FILE...]  grep [OPTIONS] [-e PATTERN | -f FILE] [FILE...] ~]# grep  "\(l..e\).*\1"  lovers.txtegrep命令: 支持擴展正則表達式實現類似於grep文本過濾功能:grep -Eegrep [OPTINS] PATTERN [FILE]選項:與grep選項相似-G:支持基本正則表達式擴展正則表達式的元字符
  • Linux下grep的常用參數,助力日常開發
    grep 是 liunx 下的一個命令行工具,可以通過正則模式搜索文件,或者通過管道匹配標準輸入。grep 的參數分為4大類,可以通過grep --help或者man grep查看所有的參數,如下是官方介紹。grep  searches  for PATTERNS in each FILE.
  • Linux 三劍客 Awk、Sed、Grep 命令詳解
    grep "text" -n file_name或cat file_name | grep "text" -n8、多個文件grep "text" -n file_1 file_210、grep遞歸搜索文件在多級目錄中對文本進行遞歸搜索:grep "text" .
  • 英語過去完成時的用法大全
    一、往期回顧英語現在進行時的用法大全英語一般現在時的用法大全英語一般過去時的用法大全英語一般將來時的用法大全
  • Python學習第185課——grep命令和pipe命令
    現在我們再稍微的複習一下grep和pipe命令。這兩個命令,我們之前的章節也都簡單的介紹過或者提過。●grep如果要在一個文件裡面去搜索某些文本或者說字符串(文本其實就是字符串),就可以使用grep命令,grep命令中還可以使用正則表達式來描述要搜索的字符串具有什麼規律。這個命令上節介紹過,詳情知識可以去看第184課,這裡再不贅述。
  • 英語現在完成時的用法大全
    一、往期回顧英語現在進行時的用法大全英語一般現在時的用法大全
  • 初中英語語法大全:動名詞worth 的用法
    初中英語語法大全:動名詞worth 的用法 6.2 worth 的用法worth,worthy,worth-while都為adj. 意為"值得"。1. worth: be worth + n.  當名詞為金錢時,表示"…… 值得……"  be worth doing sth.
  • 初中英語語法大全:let 的用法
    初中英語語法大全:let 的用法    1)當let後只有一個單音節動詞,變被動語態時,可用不帶to 的不定式。     They let the strange go.--- > The strange was let go.
  • 【基礎語法】連詞and or用法大全
    >,康哥陪你學英語今天是為期38天的#康哥帶你學基礎語法#第18天,考研基礎語法內容:《連詞and or用法大全那麼,大家是否知道它們在作為連詞時有哪幾種基本用法呢?今天就and和or的幾種常見用法整理了一下,大家快來收藏學習吧。
  • 美女示範胸部用法大全:乳溝夾手機夾飲料各顯神通(圖)
    美女示範胸部用法大全:乳溝夾手機夾飲料各顯神通(圖) 發布時間: 2013-09-10 17:06   來源: 網易娛樂   進入電子報        網易娛樂9月10日報導(圖文/小易)近日,一組美女示範胸部用法的照片在網上曝光,胸部夾杯子、夾手機,用法多多。
  • 【基礎語法】介詞on at用法大全
    今天是為期38天的#康哥帶你學基礎語法#第17天,考研基礎語法內容:《介詞on at用法大全》摘要:昨天我們已經給大家講解了by和of的用法,今天來看看另外兩個,on和at, 一起來看看吧!►on常見用法 1.動詞+on a)動詞+ on要認真區分下面一些詞組 act on對…有作用, bring on促使;導致, call on拜訪某人,count on依賴, carry on執行,depend on取決, feed on以…為生,figure
  • 初二英語語法大全:well的用法
    新東方網>英語>英語學習>語法詞彙>語法指導>正文初二英語語法大全:well的用法 2015-04-03 09:19 來源:英語網 作者:
  • 初中英語語法大全:since的四種用法
    初中英語語法大全:since的四種用法    1) since +過去一個時間點 (如具體的年、月、日期、鐘點、1980, last month, half past six)。    I have been here since 1989.