程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> find + grep 文件查找

find + grep 文件查找

編輯:關於C語言

find命令的工作方式如下:沿著文件層次結構向下遍歷,匹配符合條件的文件,並執行相應的操作。

find常用操作

查找

原形

例子

說明


文件

find + “路徑”  +“ –name” + “文件名”

find “/” -name “httpd.conf”

“-name”文件名字參數

從from)哪裡路徑)找什麼文件名)

文件內容

find + “路徑”  +“ –name” + “文件名”+ | grep + “字符”

find . -name "*.*" |xargs grep  'xiaoshou' > list.txt

grep的工作方式是這樣的,它在一個或多個文件中搜索字符串”搜索內容串”。如果”搜索內容串”包括空格,則必須被引用,”搜索內容串”後的所有字符串被看作文件名。搜索的結果被送到屏幕,不影響原文件內容



Find命令算項參數

查找

參數

說明

例子

以時間方式

-amin n

查找系統中最後N分鐘訪問的文件

find / -amin -10 # 查找在系統中最後10分鐘訪問的文件

-atime n

查找系統中最後n*24小時訪問的文件

-cmin n

查找系統中最後N分鐘被改變狀態的文件

-ctime n

查找系統中最後n*24小時被改變狀態的文件

-mmin

查找在系統中最後n分鐘裡修改過的文件

-mtime

查找在系統中最後n*24小時裡修改過的文件

以系統模式方式

-empty

查找系統中空白的文件,或空白的文件目錄,或目錄中沒有子目錄的文件夾

find / -empty # 查找在系統中為空的文件或者文件夾

-false

查找系統中總是錯誤的文件

-fstype type

查找系統中存在於指定文件系統的文件,例如:ext2

find / -user fred #查找在系統中屬於FRED這個用戶的文件

-gid n

查找系統中文件數字組 ID 為 n的文件

-group gname

查找系統中文件屬於gnam文件組,並且指定組和ID的文件

-user name

查找在系統中屬於name這個用戶的文件




-name

指定了文件名所必須匹配的字符串可以使用\(和\)將多個條件連接成一個條件進行相應的搜索

如find . \( –name “*.txt”  –o –name “*.pdf” \)  -print

-path

可以使用通配符來匹配文件路徑和文件

-name總是用給定的文件名進行匹配,-path則將文件路徑作為一個整體進行匹配

-regex

參數和 -path類似,只不過-regex是基於正則表達式來匹配文件路徑的


!

否定參數

查找所以不以.txt結尾的文件名。find . ! –name “*.txt” –print

-maxdepth

限定目錄搜索的深度


-type

按文件類型搜索普通文件   f  符號鏈接l    目錄d      字符設備 c     塊設備 b    套接字 s    FIfo  p


-delete

刪除匹配的文件










grep的工作方式是這樣的,它在一個或多個文件中搜索字符串”搜索內容串”。如果”搜索內容串”包括空格,則必須被引用,”搜索內容串”後的所有字符串被看作文件名。搜索的結果被送到屏幕,不影響原文件內容。

grep -[acinv]‘命令算項’+ '搜索內容串' filename

grep命令算項參數

參數

說明

例子

-a

以文本文件方式搜索


-c

計算找到的符合行的次數


-i

忽略大小寫


-n

順便輸出行號


-v

反向選擇,即找沒有搜索字符串的行


-?


同時顯示匹配行上下的?行

grep -2 pattern filename同時顯示匹配行的上下2行

-b

打印匹配行前面打印該行所在的塊號碼


-f File,--file=File


從文件中提取”搜索內容串”

空文件中包含0個”搜索內容串”,所以什麼都不匹配

-h

當搜索多個文件時,不顯示匹配文件名前綴


-q

取消顯示,只返回退出狀態。

0則表示找到了匹配的行

-l

打印匹配”搜索內容串”的文件清單


-L

打印不匹配”搜索內容串”的文件清單


-s

不顯示關於不存在或者無法讀取文件的錯誤信息



其中搜索串可以是正則表達式!  (vim、grep、awk 、sed 都支持正則表達式)

grep正則表達式元字符集

符號

意義

例子

^

錨定行的開始

'^grep' 匹配所有以grep開頭的行。

$

錨定行的結束

'grep$'匹配所有以grep結尾的行

.

匹配一個非換行符的字符

'gr.p'匹配gr後接一個任意字符,然後是p

*

匹配零個或多個先前字符

*grep'匹配所有一個或多個空格後緊跟grep的行。

[]

匹配一個指定范圍內的字符

如'[Gg]rep'匹配Grep和grep

[^]

匹配一個不在指定范圍內的字符

[^A-FH-Z]rep'匹配不包含A-F和H-Z的一個字母開頭,緊跟rep的行

\(..\)

標記匹配字符

如'\(love\)',love被標記為1

\<

錨定單詞的開始

如:'\<grep'匹配包含以grep開頭的單詞的行

\>

錨定單詞的結束

如'grep\>'匹配包含以grep結尾的單詞的行

x\{m\}

重復字符x,m次

如:'0\{5\}'匹配包含5個o的行

x\{m,\}

重復字符x,至少m次

'o\{5,\}'匹配至少有5個o的行

x\{m,n\}

重復字符x,至少m次,不多於n次

如:'o\{5,10\}'匹配5--10個o的行

\w


匹配文字和數字字符也就是[A-Za-z0-9]

'G\w*p'匹配以G後跟零個或多個文字或數字字符,然後是p。

\W


\w的反置形式,匹配一個或多個非單詞字符,如點號


\b

單詞鎖定符

如: '\bgrep\b'只匹配grep


本文出自 “隨心隨性 隨筆” 博客,請務必保留此出處http://suixinsuixin.blog.51cto.com/7444588/1282158

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved