Linux系列10:詳解grep命令

0 引言

在前面我們講解了whereis命令,locate命令以及find命令。他們是在文件系統搜索滿足一定條件的文件。在日常的工作中,我們還有一個十分常見的需求,就是在指定的文件查找指定的字符串。我們可以使用grep命令來完整這個需求。

1 grep命令詳解

作用:查找文件裏符合條件的字符串。
格式:grep -參數 文件
常用的參數:
-c顯示文件中包含搜索內容的行數。
-n列出所有匹配的行,並在最前面添加要查找的內容出現在文件的第幾行。
-v顯示文件中不包含所搜索內容的行數,與參數c相反
-i搜索時忽略大小寫
-l列出包含所搜索內容的文件的文件名
-r對當前目錄和子目錄進行遞歸搜索
-w精確搜索,完全匹配。比如:grep -w b* a.txt:此命令執行時,*不會默認爲任何字符,只表示字面意思,就是一個*字符.
-x只顯示匹配的內容,而不是整行。

2 示例

首先工作目錄下存在如下文件:

文件內容分別爲:

  1. 查找前綴有“test”的文件包含“test”字符串的文件,把打印包含test的行。
    在這裏插入圖片描述

  2. 查找前綴有“test”的文件包含“test”字符串的行數。

    可以看到,testfile1有1行包含test的內容。testfile_2有兩行包含test的內容。

  3. 查找前綴有“test”的文件包含“test”字符串的文件,把打印包含test的行。並顯示查找結果處於文件的第幾行。
    在這裏插入圖片描述
    可以看到,testfile1有1行包含test的內容,位於文件的第一行。testfile_2有兩行包含test的內容,分別位於文件的第二行和第三行。

  4. 查找前綴有“test”的文件包含“test”字符串的文件,把打印包含test的行。
    在這裏插入圖片描述

  5. 查找前綴有“test”的文件包含“test”字符串的文件,把打印包含test的行,查找的過程忽略大小寫。

  6. 查找前綴有“test”的文件,列出包含“test”字符串的文件的文件名。
    在這裏插入圖片描述
    testfile1和testfile_2中還有test字符串。

  7. 對當前目錄進行遞歸搜索,列出包含test字符串的行。
    在這裏插入圖片描述

  8. 查找前綴有“test”的文件包含“test”字符串的文件,把打印包含test的行。查找的過程進行精確匹配。
    在這裏插入圖片描述
    可見testfile1包含的testfile和testfile_2包含的testing都沒有被列出來。

  9. 查找前綴有“test”的文件,是否包含內容爲test的行。
    在這裏插入圖片描述
    可見搜索結果沒有內容。對testfile_2修改,添加test行。
    在這裏插入圖片描述
    再次進行搜索,查找到結果。
    在這裏插入圖片描述

注意:,如果搜索內容中有空格,則需要使用單引號或者雙引號把搜素內容引起來,比如:
grep “hello all” a.txt或者grep ‘hello all’ a.txt,如果不加單雙引號,則提示搜搜錯誤,無法識別,因爲不加引號,直接grep hello all a.txt,表示在all 和a.txt中搜索hello,

3 高級應用

3.1 多條件聯合搜索

3.2 和find並用

參考內容:

  1. inux之grep命令
  2. Linux grep 命令
  3. grep命令
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章