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