一、常用元字符簡介
字符 | 功能 |
---|---|
\ | 轉義字符 |
. | 匹配除換行符(\n、\r)之外的任意一個字符 |
* | 匹配前面的子表達式零次或多次 |
+ | 匹配前面的子表達式一次或多次 |
? | 匹配前面的子表達式零次或一次 |
$ | 匹配結尾 |
[] | 匹配方括號內的字符集合的任意一個 |
[^xyz] | 匹配除xyz之外的任意字符 |
x|y | 匹配x或者y |
{n} | 匹配前一個字符n次(嚴格的n次) |
{n,} | 匹配前一個字符至少n次 |
{n,m} | 匹配前一個字符至少n次,最多m次 |
二、grep 命令介紹
- 主要參數介紹
-E, 相當於 egrep 支持擴展的正則表達式
基本正則表達式(BRE)中,只承認“^”、“$”、“.”、“[”、“]”、“*”這些是元字符,所有其他的字符都被識別爲普通字符。
而在擴展正則表達式(ERE)中,則在BRE的基礎上增加了“(”、“)”、“{”、“}”、“?”和“+”、“|”等元字符。
-F, 相當於 fgrep 不支持正則表達式
-B 除了顯示符合範本樣式的那一列之外,並顯示該行之前的內容。後面可跟一數字,表示顯示前幾行
-A 除了顯示符合範本樣式的那一列之外,並顯示該行之後的內容。後面可跟一數字,表示顯示後幾行
-C 除了顯示符合範本樣式的那一列之外,並顯示該行前後的內容。後面可跟一數字,表示顯示前後各幾行
-b 在顯示符合樣式的那一行之前,標示出該行第一個字符的偏移量。
-a 不要忽略二進制的數據。
-c 計算符合樣式的行數。
-v 顯示不包含匹配文本的所有行(小寫v 大寫的V是顯示版本信息)
-n 顯示行號
-w 顯示嚴格全字符符合的行
-o 只顯示符合PATTERN的部分
-L 列出文件內容不符合指定的樣式的文件名稱(-l 與之相反)
-r 遞歸的方式匹配目錄下的所有文件
-H 在顯示符合樣式的那一行之前,表示該行所屬的文件名稱。(-h 與之相反)
-i 忽略字符大小寫
- 例子
[hadoop@bigdata data]$ grep pa jike.txt
#Root password
passsss
passsssinon
pa
[hadoop@bigdata data]$ grep -w pa jike.txt
pa
[hadoop@bigdata data]$ grep -o pa jike.txt
pa
pa
pa
pa
# 匹配以#開頭的行
[hadoop@bigdata data]$ grep ^# jike.txt
#Root password
[hadoop@bigdata data]$ grep passsssi* -C 1 -n jike.txt
1-#Root password
2:passsss
3:passsssinon
4-pa
[hadoop@bigdata data]$ grep passsssi* -n jike.txt
2:passsss
3:passsssinon
[hadoop@bigdata ~]$ grep p -r -H -n -b data/
data/wc.data:3:28:beijing,is,the,capital,of,china
data/hello.txt:4:28:4,jepson
data/spooling_data/wc.data.COMPLETED:3:28:beijing,is,the,capital,of,china
data/spooling_data/hello.txt.COMPLETED:4:28:4,jepson
data/position/taildir_position.json:1:0:[{"inode":182330329,"pos":114,"file":"/home/hadoop/data/taildir/test1/example.log"},{"inode":184597617,"pos":0,"file":"/home/hadoop/data/taildir/test2/b.log"},{"inode":184597614,"pos":20,"file":"/home/hadoop/data/taildir/test2/a.log"}]
data/jike.txt:1:0:#Root password
data/jike.txt:2:15:passsss
data/jike.txt:3:23:passsssinon
data/jike.txt:4:35:pa
三、find命令
在指定目錄中查找指定文件
- 語法
find path 查找條件
- 常用參數
-name name,文件名符合name的文件(-iname 忽略大小寫)
-regex PATTERN 使用正則表達式來匹配
-type 指定查找的文件類型
f 文件
d 目錄
l 符號鏈接
-empty 檢索空文件
! 反義(不符合條件的)
-user 檢查文件所屬用戶
-group 檢查文件所屬用戶組
# 天
-mtime 內容修改
-atime 訪問過
-ctime 修改過
# 分鐘
-mmin
-amin
-cmin
後跟一個負數 表示 幾天/分鐘以內 eg:-atime -2 兩天以內訪問過 -atime 2 兩天前訪問過
後跟一個正數,表示幾天/分鐘以前
-size 根據文件大小進行搜索
c 字節
k kB
M MB
G GB
eg:find . -size +13M 大於13MB 負號表示小於
-perm 通過權限進行搜索 -perm 664 / -perm u=rw,g=rw,o=r
-exec 對搜索結果執行命令,無提示 find .-type d -exec ls -l {} \;
-ok 對搜索結果執行命令,有提示(交互式,需要確認)