1. 程式人生 > >grep常見用法總結

grep常見用法總結

grep -E 'l\{2,\}' 2.txt
grep -E 'h(ell|a)o' test.txt
grep '[a-z]\{5,\}' test.txt
grep -xf a.txt b.txt  //查詢a與b共同存在的行
grep -vxf b.txt a.txt //查詢a的行不在b檔案裡面的,就是a比b多出來的行
 
grep -v '^h' test.txt //顯示非以h開發的
  
grep -E '^(h|y)' test.txt //-E支援擴充套件正則,相當於egrep
 
grep -A 1 'hello' test.txt  //除了顯示匹配到的行也顯示它之後的一行
grep -B 1 'hello' test.txt  //除了顯示匹配到的行也顯示它之前的一行
grep -C 1 'hello' test.txt  //除了顯示匹配到的行也顯示它之前和之後的一行
 
grep -r "hello" xx //在xx目錄查詢
grep -c //統計匹配的行數
grep -n //顯示行號

grep -v '^hello' test.txt //顯示不以hello開頭的行
--很聰明的寫法,第一位不以h開發,第二位不以e開發。。。
  grep  '^[^h]\|^.[^e]\|^..[^l]\|^...[^l]\|^....[^o]'
  
[options]主要引數:
-c:只輸出匹配行的計數。
-I:不區分大 小寫(只適用於單字元)。
-h:查詢多檔案時不顯示檔名。
-l:查詢多檔案時只輸出包含匹配字元的檔名。
-n:顯示匹配行及 行號。
-s:不顯示不存在或無匹配文字的錯誤資訊。
-v:顯示不包含匹配文字的所有行。


命令正則表示式:

 . 匹配單個字元 如..X  yiX能查出來
 ^ 匹配行首 ^d 每行第一個字元為d
 $ 匹配行尾 T$ 每行最後一個字元為T
 * 匹配任意字串
 \ 遮蔽特殊字元的含義
 A\{2\}B 字母A出現兩次
 A\{2,\}B 至少出現兩次
 A\{2,4\}B 出現2到4次
[0-9]\{4\}xx[0-9]\{4\} 前四個是數字,中間是xx,後四個是數字


pattern正則表示式主要引數:
\: 忽略正則表示式中特殊字元的原有含義。
^:匹配正則表示式的開始行。
$: 匹配正則表示式的結束行。
\<:從匹配正則表達 式的行開始。
錨定單詞的開始,如:/\<love/匹配包含以love開頭的單詞的行。
\>:到匹配正則表示式的行結束。
[ ]:單個字元,如[A]即A符合要求 。
[ - ]:範圍,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的單個字元。
* :有字元,長度可以為0
 [^] 
匹配一個不在指定範圍內的字元,如:/[^A-RT-Z]ed/匹配不包含A-R和T-Z的一個字母開頭,緊跟ed的行。 

+ 
匹配前面的子表示式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"。+ 等價於 {1,}。 

? 
匹配前面的子表示式零次或一次。例如,"do(es)?" 可以匹配 "do" 或 "does" 中的"do" 。? 等價於 {0,1}。


(?=pattern)  
正向預查,在任何匹配 pattern 的字串開始處匹配查詢字串。這是一個非獲取匹配,也就是說,該匹配不需要獲取供以後使用。
例如, 'Windows (?=95|98|NT|2000)' 能匹配 "Windows 2000" 中的 "Windows" ,但不能匹配 "Windows 3.1" 中的 "Windows"。預查不消耗字元,也就是說,在一個匹配發生後,在最後一次匹配之後立即開始下一次匹配的搜尋,而不是從包含預查的字元之後開始。 

(?!pattern) 
負向預查,在任何不匹配Negative lookahead matches the search string at any point where a string not matching pattern 的字串開始處匹配查詢字串。這是一個非獲取匹配,也就是說,該匹配不需要獲取供以後使用。例如'Windows (?!95|98|NT|2000)' 能匹配 "Windows 3.1" 中的 "Windows",但不能匹配 "Windows 2000" 中的 "Windows"。預查不消耗字元,也就是說,在一個匹配發生後,在最後一次匹配之後立即開始下一次匹配的搜尋,而不是從包含預查的字元之後開始
 
(?:pattern) 
匹配 pattern 但不獲取匹配結果,也就是說這是一個非獲取匹配,不進行儲存供以後使用。這在使用 "或" 字元 (|) 來組合一個模式的各個部分是很有用。
例如, 'industr(?:y|ies) 就是一個比 'industry|industries' 更簡略的表示式 

pcregrep 'Windows (?=2000|95|98|NT)' test.txt //Windows後面是2000或95..
pcregrep 'Windows (?!2000|95|98|NT)' test.txt  //Windows後面非2000,95,98等
pcregrep 'Windows (?:95|98|NT|2000)' test.txt  //與第一種一樣


egrep:
為 grep 的擴充版本, 改良了許多傳統 grep 不能或不便的操作. 比方說:
- grep 之下不支援 ? 與 + 這兩種 modifier, 但 egrep 則可.
- grep 不支援 a|b 或 (abc|xyz) 這類"或一"比對, 但 egrep 則可.

fgrep:
不作 RE 處理, 表示式僅作一般字串處理, 所有 meta 均失去功能.

pcregrep:
pcregrep - a grep with Perl-compatible regular expressions , perl正則,是最流行和規範的

相關推薦

grep常見用法總結

grep -E 'l\{2,\}' 2.txt grep -E 'h(ell|a)o' test.txt grep '[a-z]\{5,\}' test.txt grep -xf a.txt b.txt //查詢a與b共同存在的行 grep -vxf b.txt a.tx

VIM常見用法總結

變量 閱讀 meta vim gui 其中 red 字段排序 復制 歡迎和大家交流技術相關問題: 郵箱: [email protected] 博客園地址: http://www.cnblogs.com/jiangxinnju GitHub地址: https://gith

Shell – Grep 常見用法

顯示 grep -n 意思 gre 基礎 轉譯 col 當前目錄 選項 是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行打印出來。 我經常用來查找字符串比如: grep -rn "字符串" . 遞歸查找當前目錄下所有文件中 “字符串” 並且所在標出

sed常見用法總結

pen efault login 必須 passwd 文件內容 參數 分享 刪除! 簡介 sed 是一種在線編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區中的內容,處理完成

layui(九)——flow組件常見用法總結

data 常見 size 內容 官網 add function ring 不用   該模塊包含 信息流加載 和 圖片懶加載 兩大核心支持,無論是對服務端、還是前端體驗,都有非常大的性能幫助。下邊分別給出了這兩種技術的使用方法 一、信息流加載   信息流加載的核心方法時

ffmpeg常見用法總結

lib ibm 去掉 output codec 視頻 遇到 safe concat 1. 視頻/音頻剪切: ffmpeg -i input.mp3 [-ss 00:00:10] [-t 00:00:20] output.mp3 去掉-ss指令表示從頭開始 去掉-t指令表示

C++ vector常見用法總結

此文為個人學習備份,點選這裡訪問原文。 vector是一個動態的序列容器,相當於一個size可變的陣列。     相比於陣列,vector會消耗更多的記憶體以有效的動態增長。而相比於其他動態序列容器(deques, lists and forward_lists

pandas常見用法總結

前言 Pandas是一個開放原始碼的Python庫,它使用強大的資料結構提供高效能的資料操作和分析工具。這篇文章以例項方式介紹了pandas的常見用法。 匯入 # pandas一般會與numpy配合使用 import pandas as pd import numpy as

cat,grep,命令總結的簡單用法

單詞 改變 head swd passwd 數據 分隔 nbsp 次數 1:cat -E 顯示行結束符$ cat -n 對顯示出的每一行進行編號-A 顯示所有控制符 -b 非空行

List常見方法用法總結

Collection 介面雖然是集合中最大的介面,但是如果直接使用Collection進行操作,表意並不明確,因此現在Collection介面現在已經不提倡使用,在這總結一下List子介面下的ArrayList類常見用法。 先在此羅列一些List介面中常見常用的

C語言中的Scanf函式常見用法之陷阱總結

C語言中的Scanf函式常見用法之陷阱總結:  // C/C++語言中,scanf函式使用陷阱注意: //常見使用方式一: scanf("%d",&a,&b);----遇到空格或\n或非數字結束 //常見使用方式二: scanf("%s",array);----遇到

適配ListView的幾種常見Adapter的用法總結

1. BaseAdapter (1)用法 它是所有Adapter的父類,是一個通用的基礎Adapter,繼承它時必須複寫四個方法 :getCount(), getItem(), getItemId

EXCEL函式常見用法逐日總結

1.Sumif函式   1.1含義:sumif函式是用來根據指定條件對若干單元格進行求和。(即按條件求和,sumif函式為單條件判斷)   1.2格式:sumif(range,criteria,sum_range)       Sumif(條件區域,求和條件,實際求和區域)

perl中grep,sort,map用法總結

簡簡單單講map(一)map函式map BLOCK LISTmap EXPR, LISTmap函式對LIST裡的每個元素按BLOCK或EXPR進行計算,遍歷LIST時,臨時將LIST裡的每個元素賦值給$_變數。map對每次的計算返回一個結果列表,它在列表上下文裡計算BLOCK或EXPR。每個LIST元素可能在

【面試】【Spring常見問題總結】【06】

類名 truct htm 持久化框架 type 兩個 請求 method val 【常見面試問題總結文件夾>>>】 51、spring中的applicationContext.xml能不能改為其它名字 ContextLoaderListene

git branch用法總結

如果 命名 參數 war blank org 2.6 重命名 scm Git branch git branch 不帶參數:列出本地已經存在的分支,並且在當前分支的前面加“*”號標記,例如: #git branch* master

numpy中一些常用函數的用法總結

num matrix 空白 記錄 維數 補充 結果 創建 array 先簡單記錄一下,後續補充詳細的例子 1. strip()函數 s.strip(rm):s為字符串,rm為要刪除的字符序列 只能刪除開頭或是結尾的字符或者字符串。不能刪除中間的字符或是字符串 當rm為空

grep用法

我們 shell 文件 linux -- 文件中 auto www 匹配 grep的用法 首先創建我們練習grep命令時需要用到的demo文件demo_file。 $ cat demo_file THIS LINE IS THE 1ST UPPER CASE LINE

【面試】【Spring常見問題總結】【07】

之間 編程方式 順序 莫名其妙 接口編程 情況 spring容器 相互 lazy 【常見面試問題總結文件夾>>>】 61、Spring IoC容器的依賴有兩層含義: Bean依賴容器:也就是說Bean要依賴於容器,這裏的依賴是指容器負責創建B

MySQL之常見問題總結

nec 請求 size art oca 而且 設置 正常的 黑客 MySQL總是崩潰 首先你應該試著找出問題MySQLd守護進程是否死掉或你的問題是否與你的客戶有關。你能夠用MySQLadmin version檢查你的MySQLdserver正常運行了多長時間。