Linux grep命令用於查找文件里符合條件的字符串


轉自:http://www.runoob.com/linux/linux-comm-grep.html
Linux grep命令用於查找文件里符合條件的字符串。

grep指令用於查找內容包含指定的范本樣式的文件,如果發現某文件的內容符合所指定的范本樣式,預設grep指令會把含有范本樣式的那一列顯示出來。若不指定任何文件名稱,或是所給予的文件名為"-",則grep指令會從標准輸入設備讀取數據。

語法

grep [-abcEFGhHilLnqrsvVwxy][-A<顯示列數>][-B<顯示列數>][-C<顯示列數>][-d<進行動作>][-e<范本樣式>][-f<范本文件>][--help][范本樣式][文件或目錄...]

參數

-a或--text 不要忽略二進制的數據。

-A<顯示列數>或--after-context=<顯示列數> 除了顯示符合范本樣式的那一列之外,並顯示該列之后的內容。

-b或--byte-offset 在顯示符合范本樣式的那一列之前,標示出該列第一個字符的位編號。

-B<顯示列數>或--before-context=<顯示列數> 除了顯示符合范本樣式的那一列之外,並顯示該列之前的內容。

-c或--count 計算符合范本樣式的列數。

-C<顯示列數>或--context=<顯示列數>或-<顯示列數> 除了顯示符合范本樣式的那一列之外,並顯示該列之前后的內容。

-d<進行動作>或--directories=<進行動作> 當指定要查找的是目錄而非文件時,必須使用這項參數,否則grep指令將回報信息並停止動作。

-e<范本樣式>或--regexp=<范本樣式> 指定字符串做為查找文件內容的范本樣式。

-E或--extended-regexp 將范本樣式為延伸的普通表示法來使用。

-f<范本文件>或--file=<范本文件> 指定范本文件,其內容含有一個或多個范本樣式,讓grep查找符合范本條件的文件內容,格式為每列一個范本樣式。

-F或--fixed-regexp 將范本樣式視為固定字符串的列表。

-G或--basic-regexp 將范本樣式視為普通的表示法來使用。

-h或--no-filename 在顯示符合范本樣式的那一列之前,不標示該列所屬的文件名稱。

-H或--with-filename 在顯示符合范本樣式的那一列之前,表示該列所屬的文件名稱。

-i或--ignore-case 忽略字符大小寫的差別。

-l或--file-with-matches 列出文件內容符合指定的范本樣式的文件名稱。

-L或--files-without-match 列出文件內容不符合指定的范本樣式的文件名稱。

-n或--line-number 在顯示符合范本樣式的那一列之前,標示出該列的列數編號。

-q或--quiet或--silent 不顯示任何信息。

-r或--recursive 此參數的效果和指定"-d recurse"參數相同。

-s或--no-messages 不顯示錯誤信息。

-v或--revert-match 反轉查找。

-V或--version 顯示版本信息。

-w或--word-regexp 只顯示全字符合的列。

-x或--line-regexp 只顯示全列符合的列。

-y 此參數的效果和指定"-i"參數相同。

--help 在線幫助。

實例

1、在當前目錄中,查找后綴有"test"字樣的文件中包含"test"字符串的文件,並打印出該字符串的行。此時,可以使用如下命令:

grep test *file 

2、以遞歸的方式查找符合條件的文件。例如,查找指定目錄/etc/acpi及其子目錄(如果存在子目錄的話)下所有文件中包含字符串"update"的文件,並打印出該字符串所在行的內容,使用的命令為:

grep -r update /etc/acpi 

3、反向查找。前面各個例子是查找並打印出符合條件的行,通過"-v"參數可以打印出不符合條件行的內容。

查找文件名中包含test 的文件中不包含test 的行,此時,使用的命令為:

grep -v test*

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM