999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

在Linux下正則表達式和grep命令的使用

2008-12-31 00:00:00陳曉峰
電腦知識與技術 2008年35期

摘要:在Linux的命令行里如何快速檢索出所需數據,這對用戶來說是非常重要的。查詢條件需要構造正確的正則表達式,該文結合查詢命令grep,介紹了相關參數和正則表達式的使用。

關鍵詞:檢索;正則表達式;grep;Linux

中圖分類號:TP316 文獻標識碼: A文章編號:1009-3044(2008)35-2540-02

The Use of the Regular Expression and Grep in Linux

ZHONG jing,CHENG Xiao-feng

(College of Mathematics and Computer Science, Chongqing Three Gorges University, Chongqing 404000, China)

Abstract: In Linux, it's important to retrieve the data that the user wanted in the command line. Regular expression should be correct in query conditions. On the basis of the command grep, this paper studies many parameters and introduce the use of the regular expression in example.

Key words: retrieve; regular expression; grep; Linux

1 引言

一個正則表達式,就是用某種模式去匹配一類字符串的一個公式。幾乎在計算機應用的所有領域都能看到它的身影。從操作系統(Unix、Linux),程序語言(Java、PHP),到各種文本編輯軟件、類庫(Rogue Wave的tools.h++)、腳本工具(awk、JavaScript),像Microsoft的Visual C++這種交互式IDE也支持它。由此可見,正則表達式已經超出了某種語言或某個系統的局限,成為人們廣為接受的概念和功能。只要掌握了正則表達式,可以把數小時辛苦而且易錯的文本處理工作壓縮在幾分鐘(甚至幾秒鐘)內完成。

本文結合Linux操作系統下的grep命令介紹了正則表達式的使用。

2 正則表達式

什么是正則表達式(Regular Expression,簡稱RE)?簡單的說,我們可以通過“字符串以及一些特殊字符的輔助”來進行文字的對比工作,讓使用者篩選自己所需要的數據。這些特殊的字符與搭配使用的工具,就構成了正則表達式的主軸。RE的用途主要是用來做為搜尋字符串之用,匹配文件里面的內容和用來過濾特殊信息等用途。

例如,在Linux系統,/etc/rc.d/ init.d 這個目錄,如果要找到一個文件內容含有“mail”這個字符串的文件名,利用 grep命令,配合“mail”以及萬用字符“*”來搜尋所有的文件名就可以了。如grep‘mail’/etc/rc.d/init.d/*。

3 正則表達式的作用

3.1 正則表達式對于系統管理員的用途

對于系統管理員,正則表達式則是一個“不可不學的好東西!”系統如果在繁忙的情況之下,每天產生的信息會多到你無法想象,而我們也都知道,系統的“錯誤信息登錄文件”的內容記載了系統產生的所有信息。當然,這包含系統是否被“入侵”的紀錄數據。但是系統的數據量太大,系統管理員每天去看這么多的信息數據是不可能的。這個時候,我們就可以通過“正則表達式”的功能,將這些登錄的信息進行處理,僅取出“錯誤”的信息來進行分析。

3.2 正則表達式的廣泛用途

除了系統管理員之外,一大堆的軟件與設定都是支持正則表達式的。最常見的例子就是“郵件服務器”。您是否有常常收到電子郵件里最讓人頭痛的“廣告信件”呢?如果在Server端將廣告信件剔除,客戶端就會減少很多不必要的頻寬損耗了。如何剔除廣告信件呢?由于廣告信件幾乎都有一定的標題或者是內容,因此,只要每次有來信時,都先將來信的標題與內容進行特殊字符串的對比,使用正則表達式發現有不良信件就予以剔除。目前兩大服務器軟件sendmail與postfix都支持正則表達式的對比功能。很多服務器軟件、以及套件也都支持正則表達式。

4 grep命令

4.1 gerp命令基本用法

語法:[root @test /root ]# grep [-acinv] ‘搜尋字符串’filenames-list

說明:grep 是一個很常見的指令,最重要的功能就是進行字符串數據的對比,需要說明的是grep 在一個文件中查尋一個字符串時,他是以“整行”為單位來擷取數據。grep 是最簡單的正則表達式搜尋指令之一,他并不支持一些更嚴謹的正則表達式內容。不過,已經相當好用。

例1:[root @test /root]# grep‘root’ /var/log/secure

搜索/var/log/secure 這個文件中包含 root 的行。

例2:[root @test /root]# grep -v‘root’/var/log/secure

搜索/var/log/secure 這個文件中沒有 root 的行。

例3:找出regexp.txt這個文件里面含有 “know”字符,并將行號列出來。注意,大小寫是不一樣的。

[root @test /root ]# grep -n 'know' regexp.txt

例4:找出regexp.txt這個文件里面含有 “*” 這個字符,并將行號列出來。

[root @test /root ]# grep -n '\\*' regexp.txt

例5:將所有“know” 不論大小寫都列出來,并列出行號。

[root @test /root]# grep -ni 'know' regexp.txt

類似的指令還有egrep、awk、gawk、sed等。

4.2 正則表達式的特殊字符的使用

特別留意的是,正則表達式的特殊字符“*”與一般在指令列輸入指令的萬用字符并不相同。在萬用字符中,“* ”代表的是 0 ~ 無限多個字符,但是在正則表達式當中,“* ”則是重復前一個字符的意思。使用的意義并不相同。

例6:在 /etc下,列出只要含有“XYZ” 三個字符的任何一個字符的那一行。

grep [XYZ] /etc/*

例7:在 /etc 里面,只要句首是“ w-z” 的就將其列出。

grep ^[w-z] /etc/*

4.3 diff指令

diff是比較兩個文件內容是否有不一致的指令。

語法:[root @test /root ]# diff file1 file2

例8:[root @test /root]# diff index.htm index.html

例9:ls –l | grep ‘^d’ 查詢子目錄

注意:使用正則表達式要養成良好的習慣,就是在匹配模式的兩端加上‘’。這樣和shell的文件通配符號區別開。

4.4 充分正則表達式專用字符

說明:t+ 匹配一個或一個以上連續的t,如t tt ttt 。t? 匹配0個或1個t ,如 t 或 ‘ ’ 。“create | stream “ 和兩種模式的任一種進行匹配。

5 結論

在這篇文章中,介紹了正則表達式的強大功能。只要正確運用,正則表達式能夠在字符串提取和信息過濾中起到很大的作用。另外,還介紹了如何在Linux操作系統的命令行中如何將grep命令和正則表達式結合應用。由于嚴謹度的不同,正則表達式之上還有更嚴謹的延伸正則表達式。

參考文獻:

[1] 金潔珩,王娟,等.Red Hat Linux 9系統管理[M].北京:機械工業出版社,2004.

[2] 尼格斯.Red Hat Fedora和Enterprise Linux4寶典[M].北京:人民郵電出版社,2007.

[3] Steve Mansour.正則表達式之道[EB/OL].http://baike.baidu.com/view/94238.htm

[4] 關于正則表達式的理解[EB/OL].http://hi.baidu.com/zheng918/blog/item/90f8f403a7e0c9713912bbb9.html

主站蜘蛛池模板: 日韩成人高清无码| 久久久噜噜噜久久中文字幕色伊伊 | 欧美一级高清视频在线播放| 色久综合在线| 久久精品丝袜| 性欧美在线| 黄片一区二区三区| 国产美女丝袜高潮| 国产欧美成人不卡视频| 99久久这里只精品麻豆| 91小视频在线观看| 欧美日韩一区二区在线免费观看| 亚洲日本中文综合在线| 精品少妇人妻无码久久| 久久精品无码中文字幕| 日韩精品亚洲人旧成在线| 狠狠色狠狠色综合久久第一次| 国产精品熟女亚洲AV麻豆| 亚洲黄色视频在线观看一区| 超碰色了色| 在线观看亚洲人成网站| 亚洲午夜国产精品无卡| 女人爽到高潮免费视频大全| 91久久天天躁狠狠躁夜夜| 欧美激情第一区| 精品国产成人三级在线观看 | 2021天堂在线亚洲精品专区| 国产成人精品优优av| 91网址在线播放| 色综合五月婷婷| 久久天天躁狠狠躁夜夜2020一| 91亚洲国产视频| 亚洲精品片911| 亚洲天堂视频在线免费观看| 欧美精品1区2区| 国产乱子伦无码精品小说| av一区二区无码在线| 欧美日韩在线观看一区二区三区| 国产亚洲精品资源在线26u| 激情网址在线观看| 国产黑丝一区| 伊人久久青草青青综合| 久久精品亚洲中文字幕乱码| 久久伊人操| 在线观看av永久| 一级一级一片免费| 性色一区| 国产乱子伦手机在线| 久久这里只有精品8| 97国内精品久久久久不卡| 欧美亚洲另类在线观看| 欧美在线国产| 色婷婷狠狠干| 亚洲娇小与黑人巨大交| 日韩在线欧美在线| 青青久久91| 手机在线国产精品| 青青久久91| 91丝袜在线观看| 精品欧美日韩国产日漫一区不卡| 国产成人AV男人的天堂| 国产精品亚洲αv天堂无码| 色欲色欲久久综合网| 国产亚洲精品自在线| 免费在线a视频| 亚洲国产清纯| 亚洲国产精品人久久电影| 黑色丝袜高跟国产在线91| 国内精品小视频在线| 亚洲午夜天堂| 国内精自线i品一区202| 日韩成人在线视频| 99这里精品| 国产清纯在线一区二区WWW| 国产一级在线观看www色| 一级爱做片免费观看久久| 久久精品一品道久久精品| 国产精品一区不卡| 污视频日本| 成人在线欧美| 免费一级无码在线网站| 欧美在线伊人|