最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

使用 grep 匹配多個新行

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

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

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

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

這做了幾件事:

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

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

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

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

sudo apt install pcre2-utils

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

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

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

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

總結(jié)

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

相關(guān)文章

  • linux腳本實現(xiàn)自動發(fā)送和收取郵件的設(shè)置方法

    linux腳本實現(xiàn)自動發(fā)送和收取郵件的設(shè)置方法

    這篇文章主要是介紹linux下通過腳本自動發(fā)送和收取郵件的設(shè)置方法,有需要的朋友可以參考下
    2013-05-05
  • Shell實現(xiàn)批量操作文件的方法詳解

    Shell實現(xiàn)批量操作文件的方法詳解

    這篇文章主要為大家總結(jié)了一下Shell實現(xiàn)批量操作文件的命令,例如:查找某文件夾下指定文件所在的路徑、批量刪除某個文件夾下的指定文件,感興趣的可以了解一下
    2022-09-09
  • linux下編譯boost.python簡單方法

    linux下編譯boost.python簡單方法

    下面小編就為大家?guī)硪黄猯inux下編譯boost.python簡單方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-03-03
  • Shell腳本定時備份清除運行系統(tǒng)日志的代碼

    Shell腳本定時備份清除運行系統(tǒng)日志的代碼

    寫備份并清除老日志Shell腳本,并附帶一個清除日志(log)的shell腳本代碼,需要的朋友可以參考下
    2013-02-02
  • 分享一個可以通過命令簡寫執(zhí)行對應(yīng)命令的Shell腳本

    分享一個可以通過命令簡寫執(zhí)行對應(yīng)命令的Shell腳本

    這篇文章主要分享了一個可以通過命令簡寫執(zhí)行對應(yīng)命令的Shell腳本,幫助大家更好的理解和使用shell,感興趣的朋友可以了解下
    2020-12-12
  • Linux系統(tǒng)如何修改防火墻配置

    Linux系統(tǒng)如何修改防火墻配置

    這篇文章主要介紹了Linux系統(tǒng)如何修改防火墻配置,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-11-11
  • SHELL腳本read命令的具體用法

    SHELL腳本read命令的具體用法

    這篇文章主要介紹了SHELL腳本read命令的具體用法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • Linux shell 提取文件名和目錄名的方法

    Linux shell 提取文件名和目錄名的方法

    這篇文章主要介紹了Linux shell 提取文件名和目錄名的方法,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-02-02
  • Shell腳本判斷用戶的輸入內(nèi)容

    Shell腳本判斷用戶的輸入內(nèi)容

    今天小編就為大家分享一篇關(guān)于Shell腳本判斷用戶的輸入內(nèi)容,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2019-03-03
  • linux下mysql如何自動備份shell腳本

    linux下mysql如何自動備份shell腳本

    對任何一個已經(jīng)上線的網(wǎng)站站點來說,數(shù)據(jù)備份都是必須的。無論版本更新還是服務(wù)器遷移,備份數(shù)據(jù)的重要性不言而喻。人工備份數(shù)據(jù)的方式不單耗費大量時間和精力,還灰常不專業(yè)。下面小編給大家分享linux下mysql自動備份shell腳本,需要的朋友可以參考下
    2015-09-09

最新評論

田东县| 寿宁县| 商洛市| 宁强县| 嘉义县| 南皮县| 霍林郭勒市| 岑巩县| 英吉沙县| 三河市| 望都县| 沽源县| 芮城县| 磴口县| 本溪| 若羌县| 荃湾区| 中宁县| 裕民县| 蕲春县| 张北县| 许昌县| 西青区| 自治县| 宁德市| 牟定县| 襄垣县| 板桥市| 丹东市| 峨眉山市| 乐清市| 米脂县| 时尚| 衡东县| 府谷县| 通州区| 惠安县| 湘乡市| 峨山| 翁牛特旗| 柘城县|