查找first.c和second.c兩個文件中含有void的行:grep void first.c second.c
查找當前目錄下所有c文件中含有void的行:grep void *.c
查找當前目錄下所有文件(不含子文件夾)中含有void的行:grep void * (遇到文件夾會產生警告信息)
查找當前目錄下所有文件(不含子文件夾)中含有void的行,忽略子文件夾產生的警告信息:grep void * -d skip
查找當前目錄下所有文件及其子文件夾中含有void的行,並顯示行號:grep void -nr(-n是指顯示行號,-r是指遞歸遍歷文件夾)
查找指定文件夾Documents/codes/C下的所有文件及子文件夾含有void的行,並顯示行號:grep void -nr Documents/codes/C
查找指定文件夾Documents/codes/C下的所有文件及子文件夾含有單詞void的行,並顯示行號:grep void -nrw Documents/codes/C (-w是指匹配整個單詞)
正則表達式匹配:grep "[a-z]\{2\}" -nrw (查找含有兩個字母的單詞所在行和行號,{2}表示匹配兩次,{}必須要轉義)
忽略二進制文件的匹配結果,只顯示文本文件(-I,大寫的i):grep "s\{2\}" -Inrw(查找ss)
查找當前文件夾及子文件夾下文件名爲shm*.c中以shm開頭的單詞的行及其行號:grep "shm\w*" -Inrw --include=shm*.c
查找系統頭文件庫中指定函數名的函數聲明所在的頭文件和行數:
grep gtk_application_window_new -Inrw /usr/include/gtk-3.0/gtk(查找gtk_application_window_new函數的聲明)
grep g_signal_connect -Inrw /usr/include/glib-2.0/ --include=*.h (查找g_signal_connect的聲明,只查找*.h頭文件)
grep g_application_run -Inrw /usr/include/glib-2.0/ --include=*.h(查找g_application_run的聲明)
grep g_signal_ -Inr /usr/include/glib-2.0/ --include=*.h(查找所有含有g_signal_的函數的聲明,注意沒有-w選項)
查找當前文件夾及子文件夾下的文件中調用了指定函數名函數的c文件和行數:
grep g_signal_ -Inr --include=*.c(函數名部分匹配,只查找c文件)
grep g_signal_connect -Inrw(函數名完全匹配)
查看當前目錄及子目錄下的所有文件:find
查找當前目錄及子目錄下所有的c文件的文件名:find -name "*.c"(文件名必須要加引號)
查看/usr/include/gtk-3.0/gtk目錄及子目錄下的所有文件:find /usr/include/gtk-3.0/gtk
查找/etc目錄及子目錄下所有的conf文件的文件名:find /etc -name "*.conf"
不僅顯示匹配行,還要顯示後兩行(After):grep void -Inrw -A 2
不僅顯示匹配行,還要顯示前兩行(Before):grep void -Inrw -B 2
不僅顯示匹配行,還要顯示前後兩行(before and after):grep void -Inrw -C 2
大小寫不敏感:grep VOID * -i