Linux指令find & grep

Linux中喜歡把被操做的對象放在最後,參數等放中間git

例:find [參數] [路徑] [條件] [處理對象]正則表達式

find(在目錄下查找符合條件的文件)

  首先,Linux中一切皆文件。「在目錄下查找符合條件的文件」,這是說的「文件」包括Windows中所謂的目錄即文件夾
ui

1、參數

  -P、-L、-Hspa

2、路徑

  相對路徑和絕對路徑都可。3d

3、條件

1)根據名稱查找

  -name  'a*'    查找以 a 開頭的文件對象

  -iname 'a*'    查找以 a或A 開頭的文件blog

  -name '*.txt'     查找以 .txt 結尾的文件字符串

2)根據文件類型查找

  -type f      查找普通文件it

  -type d        查找目錄文件搜索

  -type l        查找連接文件

  -type b        查找塊設備文件

  -type c        查找字符設備文件

  -type p        查找管道文件

  -type s        查找套接字文件

3)根據文件從屬關係查找

  -user  king    查找用戶king擁有的文件

  -group  user1    查找組名爲user1擁有的文件

  -uid 500     查找用戶ID爲500的用戶擁有的文件

  -gid 0      查找組ID爲0的用戶擁有的文件

  -nouser      查找沒有所屬者的文件

  -nogroup      查找沒有所屬組的文件

4)根據文件大小查找【經常使用單位:k, m, g】

  -size 5k        查找小於等於5K的文件

  -size -6k         查找小於6K的文件

  -size +2g        查找大於2G的文件

  -size +3m -a  -size -6m  查找3M到6M之間的文件【-a:與】

  -size +3k -o  -size +4k   查找大於3K或6K之間的文件【-o:或】

5)根據時間戳查找

  atime:文件最後被讀取或訪問的時間

  mtime:文件最後修改的時間

  ctime:文件狀態改變的時間

  【!!!不是以「天」爲單位,而是以「24小時」爲單位】

 

  amin、mmin、cmin  【以「分鐘」爲單位】

  例:

  find -atime +1     當前時間的前24小時之前

  find -atime 1     當前時間的前24小時之前到當前時間的前48小時之後

  find -atime -1      當前時間的前24小時之後

  find -atime 2     當前時間的前2*24(48)小時之前到當前時間的前2*24+24(72)小時之後

  find -atime +2     當前時間的前48小時之前

  find -atime -2      當前時間的前48小時之後

  以此類推

6)根據權限查找

  find -perm 772    查找徹底匹配772的權限的文件

  find -perm -444     查找三類用戶都擁有讀權限的文件

  find -perm -774     查找前兩類用戶擁有徹底控制權而且其餘用戶擁有讀權限的文件

  find -perm /327     只要第一類用戶擁有可讀和可執行兩個權限中的一個,或者第二類用戶可讀權限,或者第三類用戶擁有可寫、可讀、可執行三個權限中的任一個的文件都會被查到

 

grep(在文件中進行文本搜索並打印)

1、參數:

  -i:忽略字符的大小寫

  -n:顯示行號

  -color:對查詢的關鍵字符進行高亮顯示

  -o:僅顯示匹配到的字符串自己

  -v:顯示不被模式匹配到的行

  -q:靜默模式,即不輸出任何信息

  -A #:顯示被模式匹配的行及其後#行

  -B #:顯示被模式匹配的行及其前#行

  -C #:顯示被模式匹配的行及其先後各#行

  -G:支持基本正則表達式

2、正則表達式元字符:  

  ‘^‘: 匹配行首

  ‘$’: 匹配行尾 

  ‘.‘: 匹配任一一個字符

  ‘*’: 匹配零個或多個先前字符 

  ‘[]‘: 匹配一個指定範圍內的字符 | ‘[^]’匹配指定範圍外的任意單個字符

  如下用到轉義字符‘\’的查詢條件必須有引號

  ‘\<‘或‘\b’:匹配詞首

  ‘\>’或‘\b’:匹配詞尾(可用\<PATTERN\>:匹配完整單詞)

  ‘\?‘:匹配其前面的字符0次或者1次;

  ‘\+’:匹配其前面的字符1次或者屢次;

  ‘\{m\}‘:匹配其前面的字符m次(\爲轉義字符)

  ‘\{m,n\}’:匹配其前面的字符至少m次,至多n次

  ‘\(\)’:將多個字符當作一個總體進行處理

 

 特殊匹配方式

  [:space:] 匹配空格

  [:digit:] 匹配任意單個數字

     [:lower:] 匹配任意單個小寫字母               

  [:upper:] 匹配任意單個大寫字母

  [:alpha:] 匹配任意單個字母

  [:alnum:] 匹配任意單個字母或數字

  [:punct:] 匹配任意單個符號

 

先給你們看看我1.txt文件裏的內容

查詢凡是含「aj」的行並打印

查詢含‘a’或‘j’的行並打印

查詢行首含「aj」的行並打印

查詢行尾含‘a’或‘o’的行並打印

查詢詞首含‘j’的行

查詢詞尾含‘j’或‘a’的行

查詢以數字(0~9)開頭的行

查詢不以字母開頭的行

匹配含空格的行

相關文章
相關標籤/搜索