Linux 常用命令七 grep

来源:http://www.cnblogs.com/gundan/archive/2017/12/18/8056802.html
-Advertisement-
Play Games

一、grep命令 grep(global search regular expression(RE) and print out the line,全面搜索正則表達式並把行列印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行列印出來。 grep的工作方式是這樣的,它在一個或多 ...


一、grep命令

grep(global search regular expression(RE) and print out the line,全面搜索正則表達式並把行列印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行列印出來。

grep的工作方式是這樣的,它在一個或多個文件中搜索字元串模板。如果模板包括空格,則必須被引用,模板後的所有字元串被看作文件名。搜索的結果被送到標準輸出,不影響原文件內容。

grep可用於shell腳本,因為grep通過返回一個狀態值來說明搜索的狀態,如果模板搜索成功,則返回0,如果搜索不成功,則返回1,如果搜索的文件不存在,則返回2。我們利用這些返回值就可進行一些自動化的文本處理工作。

在文件中搜索一個字元,命令會返回一個包含“1”的文本行:

wang@wang:~/workpalce/python$ grep 'words' create.txt 

在多個文件中查找:

wang@wang:~/workpalce/python$ grep 'words' create.txt a.txt b.txt

輸出除之外的所有行 -v 選項:

wang@wang:~/workpalce/python$ grep -v 'words' create.txt

統計文件或者文本中包含匹配字元串的行數 -c 選項:

wang@wang:~/workpalce/python$ grep -c 'words' create.txt

輸出包含匹配字元串的行數 -n 選項:

wang@wang:~/workpalce/python$ grep -n 'words' create.txt

在目錄中對文本進行遞歸搜索:

wang@wang:~/workpalce/python$ grep -r 'words' .

忽略匹配樣式中的字元大小寫:

wang@wang:~/workpalce/python$ grep -i 'words' create.txt

二、grep選項

-a   --text   #不要忽略二進位的數據。   

-A<顯示行數>   --after-context=<顯示行數>   #除了顯示符合範本樣式的那一列之外,並顯示該行之後的內容。   

-b   --byte-offset   #在顯示符合樣式的那一行之前,標示出該行第一個字元的編號。   

-B<顯示行數>   --before-context=<顯示行數>   #除了顯示符合樣式的那一行之外,並顯示該行之前的內容。   

-c    --count   #計算符合樣式的列數。   

-C<顯示行數>    --context=<顯示行數>或-<顯示行數>   #除了顯示符合樣式的那一行之外,並顯示該行之前後的內容。   

-d <動作>      --directories=<動作>   #當指定要查找的是目錄而非文件時,必須使用這項參數,否則grep指令將回報信息並停止動作。   

-e<範本樣式>  --regexp=<範本樣式>   #指定字元串做為查找文件內容的樣式。   

-E      --extended-regexp   #將樣式為延伸的普通表示法來使用。   

-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   #在顯示符合樣式的那一行之前,標示出該行的列數編號。   

-q   --quiet或--silent   #不顯示任何信息。   

-r   --recursive   #此參數的效果和指定“-d recurse”參數相同。   

-s   --no-messages   #不顯示錯誤信息。   

-v   --revert-match   #顯示不包含匹配文本的所有行。   

-V   --version   #顯示版本信息。   

-w   --word-regexp   #只顯示全字元合的列。   

-x    --line-regexp   #只顯示全列符合的列。   

-y   #此參數的效果和指定“-i”參數相同。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • Linux 下查看日誌時,使用 可以不斷的刷新日誌信息。 例如: 此時要想暫停刷新,使用ctrl+s暫停終端。若想繼續終端,使用ctrl+q。 若想退出tail命令,直接使用ctrl+c。 ...
  • 在Linux中vim的三種模式分別為:命令模式、末行模式、編輯模式。以下是三者的關係圖: 三種模式的彼此切換: 命令模式是vim中的預設模式。 命令模式切換至末行模式: 使用英文冒號(:)。 末行模式切換至命令模式: 按一下esc 或者 兩下esc 或者 刪除末行的全部命令。 命令模式切換至編輯模式 ...
  • 一、Why Docker預設的鏡像和容器存儲位置在/var/lib/docker中,如果僅僅是做測試,我們可能沒有必要修改,但是當大量使用的時候,我們可能就要預設存儲的位置了。 二、How 2.1 修改docker.service文件 --graph=/data/docker:docker新的存儲位 ...
  • ls
    ls命令 命令英語原意:list 命令所在路徑:/bin/ls 執行許可權:所有用戶 功能描述:顯示目錄文件 語言:ls 選項 [-ald] [文件或目錄] -a 顯示所有路徑 drwxr-xr-x 2 root root 4096 2017-12 -18 reader.conf.d 文件類型:“d” ...
  • Nginx+Keeplived雙機熱備(主從模式) 參考資料: http://www.cnblogs.com/kevingrace/p/6138185.html 雙機高可用一般是通過虛擬IP(漂移IP)方法來實現的,基於Linux/Unix的IP別名技術。 雙機高可用方法目前分為兩種: 1.雙機主從 ...
  • Centos 6.8編譯安裝LNMP環境 參考資料: http://www.jb51.net/article/107429.htm https://phperzh.com/articles/1360 一 準備工作 環境介紹: OS:Centos 6.8 最小化安裝 Nginx:nginx-1.12. ...
  • 一、which命令 查找一個目錄所在的路徑: 二、cal命令 三、date命令 date +%Y%m%d --date="-1 day" date 用法: date [OPTION]... [+FORMAT]date [-u|--utc|--universal] [MMDDhhmm[[CC]YY][ ...
  • 一、tar命令 tar命令用於打包,解包。 gzip命令用於壓縮,解壓縮。 bzip2命令用於壓縮,解壓縮。 這三個是在linux中常用的,還有一些不常用的。 tar打包: tar解包: gzip壓縮tar打包: gzip解壓縮tar解包: bzip2壓縮tar打包: bzip2解壓縮tar解包: ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...