国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Linux > 正文

Linux grep命令詳解查找文件內(nèi)容

2024-08-27 23:56:04
字體:
供稿:網(wǎng)友
  很多時候,我們并不需要列出文件的全部內(nèi)容,而是從文件中找到包含指定信息的那些行,要實現(xiàn)這個目的,可以使用 grep 命令。
 
  grep 命令作為 Linux 文本處理三劍客的一員,另外兩個是 sed 和 awk,它們會在后續(xù)章節(jié)中作詳細介紹。
 
  grep 命令的由來可以追溯到 UNIX 誕生的早期,在 UNIX 系統(tǒng)中,搜索的模式(patterns)被稱為正則表達式(regular expressions),為了要徹底搜索一個文件,有的用戶在要搜索的字符串前加上前綴 global(全面的),一旦找到相匹配的內(nèi)容,用戶就像將其輸出(print)到屏幕上,而將這一系列的操作整合到一起就是 global regular expressions print,而這也就是 grep 命令的全稱。
 
  grep命令能夠在一個或多個文件中,搜索某一特定的字符模式(也就是正則表達式),此模式可以是單一的字符、字符串、單詞或句子。
 
  正則表達式是描述一組字符串的一個模式,正則表達式的構(gòu)成模仿了數(shù)學表達式,通過使用操作符將較小的表達式組合成一個新的表達式。正則表達式可以是一些純文本文字,也可以是用來產(chǎn)生模式的一些特殊字符。為了進一步定義一個搜索模式,grep 命令支持如表 1 所示的這幾種正則表達式的元字符(也就是通配符)。
 
  通配符 功能
 
  c* 將匹配 0 個(即空白)或多個字符 c(c 為任一字符)。
 
  . 將匹配任何一個字符,且只能是一個字符。
 
  [xyz] 匹配方括號中的任意一個字符。
 
  [^xyz] 匹配除方括號中字符外的所有字符。
 
  ^ 鎖定行的開頭。
 
  $ 鎖定行的結(jié)尾。需要注意的是,在基本正則表達式中,如通配符 *、+、{、|、( 和 )等,已經(jīng)失去了它們原本的含義,而若要恢復它們原本的含義,則要在之前添加反斜杠 /,如 /*、/+、/{、/|、/( 和 /)。
 
  grep 命令是用來在每一個文件或中(或特定輸出上)搜索特定的模式,當使用 grep 時,包含指定字符模式的每一行內(nèi)容,都會被打印(顯示)到屏幕上,但是使用 grep 命令并不改變文件中的內(nèi)容。
 
  grep 命令的基本格式如下:
 
  [root@localhost ~]# grep [選項] 模式 文件名
 
  這里的模式,要么是字符(串),要么是正則表達式。而此命令常用的選項以及各自的含義如表 2 所示。
 
  選項 含義
 
  -c 僅列出文件中包含模式的行數(shù)。
 
  -i 忽略模式中的字母大小寫。
 
  -l 列出帶有匹配行的文件名。
 
  -n 在每一行的最前面列出行號。
 
  -v 列出沒有匹配模式的行。
 
  -w 把表達式當做一個完整的單字符來搜尋,忽略那些部分匹配的行。
 
  注意,如果是搜索多個文件,grep 命令的搜索結(jié)果只顯示文件中發(fā)現(xiàn)匹配模式的文件名;而如果搜索單個文件,grep 命令的結(jié)果將顯示每一個包含匹配模式的行。
 
  【例 1】假設有一份 emp.data 員工清單,現(xiàn)在要搜索此文件,找出職位為 CLERK 的所有員工,則執(zhí)行命令如下:
 
  [root@localhost ~]# grep CLERK emp.data
 
  #忽略輸出內(nèi)容
 
  而在此基礎上,如果只想知道職位為 CLERK 的員工的人數(shù),可以使用“-c”選項,執(zhí)行命令如下:
 
  [root@localhost ~]# grep -c CLERK emp.data
 
  #忽略輸出內(nèi)容
 
  【例 2】搜索 emp.data 文件,使用正則表達式找出以 78 開頭的數(shù)據(jù)行,執(zhí)行命令如下:
 
  [root@localhost ~]# grep ^78 emp.data
 
  #忽略輸出內(nèi)容
 
  grep 命令的功能非常強大,通過利用它的不同選項以及變化萬千的正則表達式,可以獲取任何我們所需要的信息。本節(jié)所介紹的 grep 命令,只介紹了它的一部分基礎知識,比如說,grep 命令可用的選項還有很多,且用法也五花八門,不過對于初學者來說,本節(jié)所介紹的內(nèi)容已經(jīng)足以應付多數(shù) Linux 系統(tǒng)的日常工作了。
 

(編輯:武林網(wǎng))

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 榆中县| 葵青区| 中山市| 平邑县| 翁牛特旗| 都江堰市| 崇州市| 黄陵县| 泰和县| 海城市| 息烽县| 昂仁县| 内乡县| 紫云| 桦南县| 吐鲁番市| 定兴县| 金平| 岗巴县| 宜黄县| 庆安县| 依兰县| 喀喇沁旗| 千阳县| 东阳市| 建昌县| 怀集县| 东兰县| 廊坊市| 绥芬河市| 乐业县| 旅游| 克东县| 涟水县| 三门县| 阿合奇县| 饶平县| 柏乡县| 岑溪市| 齐齐哈尔市| 胶南市|