欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一文教會你如何使用grep跨多行查找模式匹配

 更新時間:2022年09月29日 11:32:08   作者:mikes?zhang  
grep匹配是linux的最常用的shell命令之一,這篇文章主要給大家介紹了關于如何使用grep跨多行查找模式匹配的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下

grep 是一個命令行文本搜索實用程序,能夠在文件和其他類型的輸入中查找模式和字符串。大多數匹配只匹配一行,但跨多行匹配通常很有用。

使用 grep 匹配多個新行

處理多行匹配是一件很困難的事情grep 。一個更好的工具是awk or sed,它們都可以自然地處理多行輸入。使用兩個帶有逗號的表達式將匹配這兩個模式之間的所有內容。

awk '/from/,/to/' file
sed -n '/from/,/to/p' file

仍然可以在 中處理此問題grep,但是該命令非常笨拙。

grep -Pz '(?s)from.*n.*to' test

這做了幾件事:

  • -P打開Perl 兼容的正則表達式。
  • -z 將整個文件作為一行提供,使用“零字節(jié)”而不是換行符。這允許 grep 將整個事情作為一行處理。 (?s) 打開 PCRE_DOTALL,使. 字符匹配任何字符,包括換行符。
  • from 是首發(fā)比賽。
  • .n. 將匹配所有內容,直到to,這是結束匹配。
    總體而言,這將為腳本目的完成,但如果您自己輸入,請記住很多。此外,使用該-o 標志僅打印匹配項也會打印出尾隨零字節(jié)字符,這可能會導致其他問題。

使用 pcre2grep 代替(Perl 兼容的 grep)

正grep 則不是完成這項工作的最佳工具,還有一種替代方法pcre2grep ,即開箱即用地支持 Perl 兼容正則表達式,并且能夠非常輕松地匹配多行正則表達式。

它可能已安裝在您的系統(tǒng)上,但如果沒有,您可以從包管理器中獲取它:

sudo apt install pcre2-utils

然后,您只需要使用-M 參數運行它。

pcre2grep -M 'from(n|.)*to' file

請注意,這仍然需要您手動將“換行符或任何字符”與(n|.)* . 或者,您可以使用該(?s) 技巧打開 PCRE_DOTALL 并使點字符也匹配換行符。

pcre2grep -M '(?s)from.*to' file

總結

到此這篇關于如何使用grep跨多行查找模式匹配的文章就介紹到這了,更多相關grep跨多行查找模式匹配內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • shell腳本中 /dev/null 的用法小結

    shell腳本中 /dev/null 的用法小結

    /dev/null 通常被用于丟棄不需要的輸出流,或作為用于輸入流的空文件,這些操作通常由重定向完成,任何你想丟棄的數據都可以寫入其中,本文重點給大家介紹shell腳本中 /dev/null 的用法小結,感興趣的朋友一起看看吧
    2021-09-09
  • 最快捷登陸ssh 服務器的方法

    最快捷登陸ssh 服務器的方法

    這篇文章主要介紹了如果利用shell 腳本登陸,實現(xiàn)最快速登陸,需要的朋友可以參考下
    2013-11-11
  • Shell編程中的特殊變量之位置變量介紹

    Shell編程中的特殊變量之位置變量介紹

    這篇文章主要介紹了Shell編程中的特殊變量之位置變量介紹,本文講解了$0、$n、$*、$#這4個特殊變量,需要的朋友可以參考下
    2014-12-12
  • shell的比較運算介紹

    shell的比較運算介紹

    shell中的比較運算介紹,想學習linux shell編程的朋友可以參考下
    2013-01-01
  • 詳解shell 變量的高級用法示例

    詳解shell 變量的高級用法示例

    這篇文章主要介紹了詳解shell 變量的高級用法示例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-05-05
  • Centos下查看網卡的實時流量命令

    Centos下查看網卡的實時流量命令

    本文介紹了linux下查看網卡流量的六種方法,linux系統(tǒng)中使用nload、iftop、iostat等工具查看網卡流量,這里我們先來詳細講解下 iptraf 方法,需要的朋友參考下。
    2015-05-05
  • Linux 中C語言getcwd()函數的用法

    Linux 中C語言getcwd()函數的用法

    這篇文章主要介紹了Linux 中C語言getcwd()函數的用法的相關資料,需要的朋友可以參考下
    2017-04-04
  • linux shell 中 2>&1的含義

    linux shell 中 2>&1的含義

    對于&1 更準確的說應該是文件描述符 1,而1 一般代表的就是STDOUT_FILENO,實際上這個操作就是一個dup2(2)調用
    2013-02-02
  • Shell腳本對文件中的行、單詞、字符進行迭代輸出示例

    Shell腳本對文件中的行、單詞、字符進行迭代輸出示例

    這篇文章主要介紹了Shell腳本對文件中的行、單詞、字符進行迭代輸出示例,本文講解了迭代文件中的每一行、迭代一行中的每一個單詞、迭代一個單詞中的每一個字符等內容,需要的朋友可以參考下
    2014-11-11
  • shell腳本使用兩個橫杠接收外部參數的方法

    shell腳本使用兩個橫杠接收外部參數的方法

    這篇文章主要介紹了shell腳本使用兩個橫杠接收外部參數的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12

最新評論