Linux find和grep 正則表示式
阿新 • • 發佈:2021-12-20
內容概要
- find命令
- 正則表示式
- Linux三劍客之grep
內容詳細
find命令
根據檔案的名稱或者屬性查詢內容 語法格式: find [查詢範圍] [引數] 引數: -name :按照檔案的名字查詢檔案 * :萬用字元 -iname :按照檔案的名字查詢檔案(忽略大小寫) -size :按照檔案的大小查詢檔案 + :大於 - :小於 沒符號 :等於 -mtime :按照修改時間去查詢 +(可以省略):n天以前 - :n天以內 -atime -ctime -user :按照使用者的屬主查詢 -group :按照使用者的屬組查詢 -type :按照檔案的型別查詢 d :資料夾 l :連結檔案 s :套接字檔案 p : 管道檔案 c :字元檔案 b :磁碟檔案 f :普通檔案 -perm :按照檔案的許可權查詢 -inum :根據index node號碼查詢 -a :並且(可以省略,預設時並且) -o :或者 -maxdepth :查詢的目錄深度(必須放置在第一個引數位) -exec :將find處理好的結果交給其他命令繼續處理 知識儲備: dd : 生成檔案 if :從什麼地方讀 of : 寫入到什麼檔案 bs : 每次寫入多少內容 count : 寫入多少次 案例: 案例1:查詢/etc目錄下hosts檔案 [root@localhost ~]# find /etc/ -name 'hosts' /etc/hosts 案例2:查詢/etc目錄下名稱中包含hosts檔案 [root@localhost ~]# find /etc/ -name '*hosts*' 案例3:要求把/etc目錄下,所有的普通檔案打包壓縮到/tmp目錄 [root@localhost /tmp]# tar -czPf /tmp/etcv2.tar.gz `find /etc/ -type f | xargs` 知識儲備 | : 前面一個命令的結果交給後面一個命令處理 xargs : 把處理的文字變成以空格分割的一行 `` : 提前執行命令,然後將結果交給其他命令來處理
grep命令
linux三劍客之一,文字過濾器(根據文字內容過濾檔案)。 語法格式: grep [引數] [匹配規則] [操作物件] 引數: -n : 過濾文字時,將過濾出來的內容在檔案內的行號顯示出來 -A : 匹配成功之後,將匹配行的後n行顯示出來 -B : 匹配成功之後,將匹配行的前n行顯示出來 -C : 匹配成功之後,將匹配行的前後各n行顯示出來 -c : 只顯示匹配成功的行數 -o : 只顯示匹配成功的內容 -v : 反向過濾 -q : 靜默輸出 -i : 忽略大小寫 -l : 匹配成功之後,將文字的名稱打印出來 -R|-r : 遞迴匹配 -E : 使用拓展正則 等價於 egrep 知識儲備: $? : 上一行命令執行的結果,0代表執行成功,其他數字代表執行失敗。 wc : 匹配行數 -l : 列印匹配行數 -c : 列印匹配的位元組數 在/etc目錄下,有多少個檔案包含root。 grep -rl 'root' /etc/ | wc -l
正則表示式
1、正則表示式的分類(grep) 1、普通正則表示式 2、拓展正則表示式 2、普通正則表示式 ^ : 以某字元開頭 $ : 以某字元結尾 . : 匹配除換行符之外的任意單個字元 * :匹配前導字元的任意個數 [] : 某組字串的任意一個字元 [^] : 取反 [a-z] : 匹配小寫字母 [A-Z] : 匹配大寫字母 [a-zA-Z] : 匹配字母 [0-9] : 匹配數字 \ : 取消轉義 () : 分組 \n : 代表第n個分組 3、拓展正則 {} :匹配的次數 {n} : 匹配n次 {n,} :至少匹配n次 {n,m} :匹配 n 到 m 次 {,m} :最多匹配m次 + :匹配至少有一個前導字元 ? : 匹配一個或零個前導字元 | :或 案例: 案例1:在/etc/passwd檔案中,匹配以ftp開頭的行 grep '^ftp' /etc/passwd 案例2:在/etc/passwd檔案中,匹配以bash結尾的行 grep 'bash$' /etc/passwd 案例3:匹配本機中有哪些ip ip a | grep -oE '([0-9]{1,3}\.){3}[0-9]{1,3}' 案例4:要求將/etc/fstab中的去掉包含 # 開頭的行,且要求 # 後至少有一個空格 grep -vE '^#\ +' /etc/fstab 案例5:找出檔案中至少有一個空格的行 grep -E '\ +' xxx 案例6:將 nginx.conf 檔案中以#開頭的行和空行,全部刪除 grep -vE '^\ *#|^$' /etc/nginx/nginx.conf