linux搜索文件内容含有星号,文本内容查找grep、文件查找find、正则匹配
一、文本內容查找工具 grep
grep?? egrep (文本過濾)?? fgrep (不支持正則)
對文本的內容按照指定的匹配模式基于行來進行篩選
格式???? grep [選項] 模式 文件
選項:
-v:反向匹配,顯示不能被模式匹配到的行
-o:僅匹配被模式匹配到的字符串,而非整行
-q:靜默模式
-i:不區分大小寫,ignore-case
-E:支持擴展(相當于egrep) grep -E = egrep
根據正則表達式進行匹配查找
1、點 . ??:? 任意單個字符
2、[ ]? : 指定[ ]范圍內的任意單個字符
[0-9],[[:digit:]] 匹配任意單個數字
[a-z],[[:lower:]] 匹配任意單個小寫字母
[A-Z],[[:upper:]] 匹配任意單個大寫字母
所有的字母:[[:alpha:]]
字母+數字:[[:alnum:]]
空格:[[:space:]](空格不等同于空行)
標點符號字符:[[:punct:]]
[^]: 指定范圍外的任意單個字符
3、次數匹配:用來指定匹配其前面的字符的次數
*? : 星號前面的一個字符出現0次或n次
.*? : 匹配任意長度的任意字符
\?? : 問號前面的一個字符出現0次或者1次 \轉義
\+? : 前面字符至少1次? (1次到n次)
\{m\}? : 匹配m次
\{m,n\}? : 至少m次,至多n次
\{m,\}? :? 至少m次
\{,n\}? :? 至少0次,至多n次
4、位置錨定:用于指定字符出現的位置
^?? : 錨定行首 ^char
$?? : 錨定行尾 char$
^$? : 空白行
5、單詞的位置錨定
\
char\> ?: 錨定單詞詞尾
6、egrep:支持擴展正則表示({} , (), ?, +可以不用轉義) 等價于:grep -E
二、管道操作
管道:
Linux:
程序=指令+數據
使用目的單一的小程序
組合小程序完成復雜的任務
指令1 | 指令2 | 指令3
| 左邊命令的輸出作為 | 后邊命令的輸入
Linux 中不是所有命令都支持管道,不支持管道的命令:cd? rm? find ...
三、文本內容處理命令 wc, tr, cut, sort
1、wc:即 word count
ctrl+d 提交
行 單詞數 字節數
wc[option][file]...
-l:統計行數
-c:統計字節數
-w:統計單詞數
2、tr:轉換或刪除字符,tr ‘集合1’ ‘集合2’,必須使用管道
轉換字符:會把第一個字符集的對應轉換為第二個字符集中的對應轉換
-d:刪除出現過的字符集
3、cut:根據指定的分隔符切片,并顯示出需要顯示的片
-d字符:指定分隔符
-f (field)?? 數字:指定要顯示的字段
單個數字:一個字段
多個離散字段:逗號分隔
多個連續字段:-分隔
4、sort:按字符進行比較
格式 sort[options] FILE
-f:忽略大小寫
-n:對數字進行排序
-t:指定分隔符
-k數字:指定分隔后進行排序字段列號
-u:重復的行,只顯示一行
-r:倒序排列
例題:查詢用戶,按照編號從大到小的順序排列,取編號最大的前5名,列出用戶名和編號
四、文件查找---------find命令
①:根據文件名? -name? -iname(忽略大小寫)
②:根據屬主屬組查找
-user username 根據屬主查找
-group grpname 根據屬組查找
可接組合條件 -a而且 -o或者:find /home -user root -a -group root 屬主和屬組都是root的
③:根據文件類型查找?? -type
④根據文件的大小來查找?? -size
⑤根據時間戳來查找? -atime? -mtime?? -ctime (單位天,如果按照-mmin)
五、查到后的處理動作
①:打印(默認)
-print 默認
-fls 自定義
把輸出結果打印到output.txt中
②:查詢屬性信息(類似ls -l) -ls
③:刪除? -delete
④:后接命令(交互) -ok
⑤:后接命令(不交互) -exec cmd {} \;
六、讓find命令支持管道(xargs命令)
find命令不支持管道,但是可以使用xargs命令強行驅動可以使用管道
總結
以上是生活随笔為你收集整理的linux搜索文件内容含有星号,文本内容查找grep、文件查找find、正则匹配的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux多线程计算pi,使用蒙特卡洛方
- 下一篇: 设置linux服务,Linux服务的se