1. Unix/linux 中 Grep 命令的基礎使用示例
Grep是Unix/Linux及類Unix操作系統中的強大命令行搜索工具。它是GNU和自由軟體基金會發布的開源工具的一部分,幾乎默認安裝在所有Unix、Linux、BSD等發行版上,甚至可以在Windows操作系統中使用。Grep的功能強大,系統管理員常將其作為「瑞士軍刀」工具之一。它允許用戶通過給定的匹配模式,搜索輸入文件或輸入流中的匹配內容。默認情況下,當在以行為單位的輸入中找到匹配內容時,Grep會復制該行到標准輸出,或根據指定參數生成所需的輸出格式。Grep對文本匹配時,對輸入行長度無限制,並能匹配一行中的任意字元。如果輸入文件的最後一個位元組非換行符,Grep將提供換行符,但無法匹配文本中的換行符。
Grep的基礎使用模式為`grep [option...] [patterns] [file...]`。命令可能包含零個或多個選項參數,以及零個或多個文件參數。Pattern參數包含一個或多個由換行符分隔的模式。通過`-e pattern`或`-f file`選項給出模式時,可以省略該參數。關於Grep的詳細參數解釋,可以參考菜鳥教程的Linux教程部分關於Grep命令的介紹。
以下為Grep的常用示例:
1. 查找特定匹配模式的文件行:這是Grep最基礎的使用方式,用於搜索包含特定匹配模式的行,並將匹配的行輸出到終端。
2. 忽略大小寫:使用`-i`參數可以忽略字元大小寫差異進行匹配。
3. 匹配以特定字元開頭的行:通過在目標模式字元或字元串前添加`^`符號來實現查找特定字元或字元串開頭的行。例如,要查看文件中以「hello」開頭的行,只需使用`grep "^hello" infile.txt`。
4. 匹配以特定字元結尾的行:通過在匹配的目標模式字元或字元串末尾添加`$`符號來實現查找特定字元或字元串結尾的行。例如,要查找grep_basic_usage.txt文件中以`.file`結尾的所有行,可以使用`grep "$.file" grep_basic_usage.txt`,加上`-i`參數可以忽略大小寫。
5. 匹配以數字開頭或以數字結尾的行:可以通過`^`符號來查找數字開頭的行,例如`grep "^123" file.txt`。同樣,`$`符號用於查找數字結尾的行。
6. 多文件匹配:可以在一行命令中搜索和匹配多個文件。必須用空格分隔多個文件名,或使用`*`通配符匹配所有文件。匹配結果將顯示每個文件中匹配的所有行及其對應文件名。例如,`grep "pattern" file1 file2`。
7. 按完整單詞精確匹配:使用`-w`參數實現完整單詞的匹配,僅當整個模式以單詞形式完全匹配時輸出匹配的行。
8. 反向查找:使用`-v`選項輸出文件中不包含匹配文本的所有行。例如,`grep -v "hello" grep_basic_usage.txt`。
9. 顯示匹配行的行號:使用`-n`參數在輸出的匹配行之前顯示對應的行號,並用英文冒號`:`分隔行號與內容。
10. 計數匹配行:使用`-c`參數對匹配的行進行計數統計,輸出滿足匹配模式的行的數量。
11. 遍歷當前目錄及其子目錄搜索文件:使用`-r`參數對當前目錄(包括子目錄)中的所有文件進行模式匹配搜索,輸出匹配文件路徑(包括文件名)和匹配行內容,路徑與內容之間用`:`分隔。
12. 輸出包含匹配模式的文件列表:使用`-l`參數輸出指定目錄下包含匹配模式的文件列表。相反,使用`-L`參數輸出不包含匹配模式的文件列表。
13. 匹配模式所在行及其前n行:使用`-B n`參數輸出匹配模式所在的行及其前n行內容,總計輸出n+1行內容(包含匹配模式所在行)。
14. 匹配模式所在行及其後n行:與`-B n`參數相反,使用`-A n`參數輸出匹配模式所在的行及其後n行內容,總計輸出n+1行內容(包含匹配模式所在行)。
15. 匹配模式所在行及其前n行和後n行:使用`-C n`參數輸出Grep命令模式匹配的當前行及其前n行和後n行內容,總計輸出2n+1行內容(包含模式匹配所在行)。
16. 完全匹配整行:使用`grep -x`命令實現搜索與給定目標模式全匹配的行,而不是行中的部分內容。
17. 多模式匹配:可以通過多種方式實現一次對多個模式的匹配,涉及到正則表達式的使用。詳細說明請參考GNU Grep: Print lines matching a pattern官方文檔。
總結:Grep命令提供多種基礎和高級功能,參數選項的組合使用可實現復雜功能。正則表達式的熟練使用是發揮Grep搜索功能的關鍵。更多詳細使用說明請參考GNU Grep: Print lines matching a pattern官方文檔。
Ref:GNU Grep: Print lines matching a pattern
2. Linux grep 命令
Linux 終端中,grep 是一個常用的文本搜索工具,功能強大且靈活。其基本用法簡單,只需指定要搜索的字元串和文件名,即可輸出包含指定字元串的行。
例如,若想在名為 example.txt 的文件中搜索字元串 "hello",可執行命令:grep "hello" example.txt
若需在多個文件中搜索,可使用通配符 *。例如,在所有以 .txt 結尾的文件中搜索 "hello",執行:grep "hello" *.txt
此外,grep 命令支持多種選項,如:靈活使用這些選項,可滿足不同搜索需求。在終端進行文本搜索時,掌握 grep 命令尤為關鍵。
值得注意的是,通過代理商購買機器可能比直接從官網購買更劃算,且通常能享受到技術支持服務,遇到問題時可獲得專業解答,極為便利。3. linux grep命令怎麼用
grep (global search regular expression(RE) and print out the line,全面搜索正則表達式並把行列印出來)是一種強大的文本搜索工具,它能使用正則表達式搜索文本,並把匹配的行列印出來。
Unix的grep家族包括grep、egrep和fgrep。egrep和fgrep的命令只跟grep有很小不同。egrep是grep的擴展,支持更多的re元字元, fgrep就是fixed grep或fast grep,它們把所有的字母都看作單詞,也就是說,正則表達式中的元字元表示回其自身的字面意義,不再特殊。linux使用GNU版本的grep。它功能更強,可以通過-G、-E、-F命令行選項來使用egrep和fgrep的功能。
grep的詳細使用方法有很厚一本書,此處無法詳細說明,只能列出grep常用用法
[root@www ~]# grep [-acinv] [--color=auto] '搜尋字元串' filename
選項與參數:
-a :將 binary 文件以 text 文件的方式搜尋數據
-c :計算找到 '搜尋字元串' 的次數
-i :忽略大小寫的不同,所以大小寫視為相同
-n :順便輸出行號
-v :反向選擇,亦即顯示出沒有 '搜尋字元串' 內容的那一行!
--color=auto :可以將找到的關鍵詞部分加上顏色的顯示喔!