Linux 基礎(chǔ)教程 23-基本命令find和grep

find

??find命令主要用來(lái)在指定的路徑下查找指定的文件伐脖。

基礎(chǔ)語(yǔ)法

find [路徑] [參數(shù)] [操作]

詳細(xì)的參數(shù)說(shuō)明如下所示:

  • 路徑:find命令查找的目錄路徑销凑,如 . 表示當(dāng)前目錄焙贷,/ 表示系統(tǒng)根目錄
  • 參數(shù):指定上的查找條件缩抡,如:可以按照文件更改時(shí)間、文件類(lèi)型等條件查找
  • 操作:用于指定結(jié)果的輸出方式

find命令常用參數(shù)及其含義如下:

參數(shù) 含義
-name 按文件名查找文件
-perm 按文件權(quán)限查找文件
-depth 查找文件時(shí)哗讥,首先查找當(dāng)前目錄中的文件迈窟,然后在其子目錄中查找
-prune 使用該參數(shù)進(jìn),可以使find命令不在當(dāng)前指定的目錄中查找忌栅,如果同時(shí)使用-depth參數(shù),則-prune將被find命令忽略
-user 根據(jù)文件屬主查找文件
-group 根據(jù)文件所屬的用戶組查找
-mtime -n +n 根據(jù)文件的更改時(shí)間查找文件曲稼,-n 表示文件更改時(shí)間距離現(xiàn)在在n天以內(nèi)索绪,+n表示文件更改時(shí)間距離現(xiàn)在在n天之前
-nogroup 查找無(wú)有效屬組的文件,即該文件所屬的組在/etc/groups中不存在
-nouser 查找無(wú)有效屬主的文件贫悄,即該文件的屬主在/ect/passwd中不存在
-newer file1 ! file2 查找更改時(shí)間比文件file1新但比f(wàn)ile2舊的文件
-type 查找某一類(lèi)型的文件瑞驱,type后的子參數(shù)及其意義如下:
b:塊設(shè)備文件
d:目錄
c:字符設(shè)備文件
p:管道文件
l:符號(hào)鏈接文件
f:普通文件
-size n:[c] 查找文件長(zhǎng)度為n塊的文件,帶有c時(shí)表示文件長(zhǎng)度以字節(jié)計(jì)

find命令操作名稱(chēng)及其意義如下所示:

操作名稱(chēng) 含義
-print 將匹配的文件輸出到標(biāo)準(zhǔn)輸出
-exec 對(duì)匹配的文件執(zhí)行該參數(shù)所給出的Shell命令窄坦。相應(yīng)命令的形式為'command' { } ;唤反。注意{ }和;之間的空格
-ok 和-exec作用相同,只不過(guò)以一種更安全的模式來(lái)執(zhí)行該參數(shù)所給出的Shell命令鸭津,在執(zhí)行每一個(gè)命令之前彤侍,都給出提示,讓用戶來(lái)確定是否執(zhí)行

示例

  • 1逆趋、根據(jù)文件名進(jìn)行查找文件盏阶,并將匹配到文件輸出到標(biāo)準(zhǔn)輸出


    23-1 find-name示例_c2i.jpg
  • 2、查找更改時(shí)間在距今3天以內(nèi)的文件和距今3天之前的文件


    23-2 find-mtime示例_c2i.jpg
  • 3闻书、查找對(duì)應(yīng)的文件名斟,并顯示每個(gè)文件對(duì)應(yīng)的行數(shù)


    23-3 find-exec示例_c2i.jpg
  • 4、查找對(duì)應(yīng)的文件魄眉,在執(zhí)行刪除文件逐個(gè)進(jìn)行確認(rèn)


    23-4 find-ok示例_c2i.jpg

grep

??grep是(Global search Regular Expression and Print out the line)的簡(jiǎn)稱(chēng)砰盐,即全面搜索正則表達(dá)式并打印行,該命令是Linux中的一種非常強(qiáng)大的文本搜索工具坑律,它可以根據(jù)指定的字符串岩梳,對(duì)文件的每一行進(jìn)行搜索,如果找到該字符串脾歇,則輸出該行的內(nèi)容蒋腮。

基礎(chǔ)語(yǔ)法

grep [參數(shù)] 需要查找的字符串 文件名

主要參數(shù)如下所示:

參數(shù) 功能
-A NUM 除了顯示符合條件的行外,同時(shí)顯示每個(gè)符合條件行的后NUM行
-B NUM 除了顯示符合條件的行外藕各,同時(shí)顯示每個(gè)符合條件行的前NUM行池摧,與-A相反
-c 只顯示符合條件的行數(shù),而不顯示每行的具體信息
-i 搜索時(shí)忽略大小寫(xiě)
-h 搜索多個(gè)文件時(shí)不顯示文件名
-l 只顯示符合匹配的文件名激况,而不顯示具體的匹配行
-n 顯示所有匹配的行作彤,并顯示行號(hào)
-s 不顯示不存在或無(wú)匹配文本的錯(cuò)誤信息
-v 顯示不包含匹配文本的所有行
-w 匹配整詞
-x 匹配整行
-r 遞歸搜索膘魄,不僅搜索當(dāng)前目錄,也搜索子目錄
-q 不輸出任何結(jié)果竭讳,以退出狀態(tài)表示搜索是否成功
-b 打印匹配行距離文件頭部的偏移量创葡,以字節(jié)為單位
-o 與-b結(jié)合使用,打印匹配的詞距離文件頭部的偏移量绢慢,以字節(jié)為單位
-E 支持?jǐn)U展的正則表達(dá)式

grep命令中的需要查找的字符串十分靈活灿渴,可以是字符串,也可以是變量胰舆,還可以是正則表達(dá)式骚露。需要注意的是,無(wú)論是體積形式缚窿,只要包含空格棘幸,就需要使用雙引號(hào)將其引起來(lái),如果不加雙引號(hào)倦零,空格后的字符串會(huì)被認(rèn)為為是文件名误续。

常規(guī)示例

  • 1、搜索的字符串包含空格時(shí)扫茅,是否使用雙引號(hào)的區(qū)別


    23-5 grep示例-1_c2i.jpg

從上面可以看出蹋嵌,如果搜索的字符串包含空格時(shí),會(huì)產(chǎn)生錯(cuò)誤葫隙,在Linux中默認(rèn)參數(shù)時(shí)以空格做為分隔

  • 2欣尼、多文件查詢


    23-6 grep示例-2_c2i.jpg
  • 3、使用通配符查詢


    23-7 grep示例-2_c2i.jpg
  • 4停蕉、-c參數(shù)詳解
    ??-c參數(shù)表示輸出匹配字符串行的數(shù)量愕鼓,默認(rèn)情況下,grep命令打印包含搜索字符串的所有行慧起,而加上-c參數(shù)后菇晃,就只顯示包含搜索字符串行的數(shù)量,如下所示:


    23-8 grep-c參數(shù)_c2i.jpg
  • 5蚓挤、-n參數(shù)詳解
    ??-n參數(shù)顯示所有匹配的行磺送,并顯示行號(hào)。默認(rèn)情況下灿意,grep搜索單個(gè)文件時(shí)估灿,只顯示每行的內(nèi)容,搜索多個(gè)文件時(shí)缤剧,顯示文件名及每行的內(nèi)容馅袁,如果加-n參數(shù)后,將在匹配的行前面顯示行號(hào)荒辕,如下所示:


    23-9 grep-n參數(shù)_c2i.jpg
  • 6汗销、-v參數(shù)詳解
    ??-v參數(shù)顯示不包括匹配文本的所有行犹褒,即將搜索到的匹配行排除在外。


    23-10 grep-v參數(shù)_c2i.jpg
  • 7弛针、-i參數(shù)詳解
    ??在Linux系統(tǒng)中叠骑,對(duì)大小寫(xiě)是敏感的,而grep也不例外削茁。參數(shù)-i則表示在搜索時(shí)忽略大小寫(xiě)赃春,如下所示:


    23-11 grep-i參數(shù)_c2i.jpg
  • 8乱顾、-h參數(shù)詳解
    ??-h參數(shù)表示搜索多文件時(shí)不顯示文件名先誉。而在默認(rèn)情況下攻谁,grep命令查詢多個(gè)文件時(shí)鱼辙,會(huì)在匹配行的前面顯示文件名紊撕,而-h參數(shù)的主要作用就是不在顯示文件名钱骂,如下所示:


    23-12 grep-h參數(shù)_c2i.jpg
  • 9夺艰、-l參數(shù)詳解
    ??-l表示只顯示搜索到的匹配項(xiàng)的文件名捍岳,而不顯示具體的匹配行富寿,如下所示:


    23-13 grep-l參數(shù)_c2i.jpg
  • 10、-s參數(shù)詳解
    ??-s參數(shù)表示不顯示不存在或無(wú)法匹配到的文本錯(cuò)誤信息锣夹。在默認(rèn)情況下页徐,當(dāng)grep在搜索中出現(xiàn)不存在或無(wú)法匹配時(shí)將打印錯(cuò)誤信息,如下所示:


    23-14 grep-s參數(shù)_c2i.jpg
  • 11银萍、-r參數(shù)詳解
    ??默認(rèn)情況下变勇,grep命令只搜索當(dāng)前目錄下的文件,而不對(duì)子目錄的文件進(jìn)行搜索贴唇。使用-r參數(shù)后搀绣,則搜索當(dāng)前目錄和子目錄,如下所示:


    23-15 grep-r參數(shù)_c2i.jpg
  • 12戳气、-w和-x參數(shù)
    ??grep命令是支持正則表達(dá)式的链患。正則表達(dá)式中的元字符會(huì)被解釋為特殊的含義。-w表示匹配整個(gè)搜索字符串瓶您,即以字面的含義去解析它麻捻。-x則是匹配整行,即只有文件中有整行內(nèi)容和搜索字符串匹配呀袱,才會(huì)顯示出來(lái)贸毕。詳細(xì)示例如下:

    23-16 grep-w-x參數(shù)_c2i.jpg

  • 13、-q參數(shù)詳解
    ??從上面可知夜赵,grep命令默認(rèn)情況下是輸出結(jié)果的明棍。如果只是想知道有沒(méi)有匹配成功,則使用-q參數(shù)即可寇僧。

退出狀態(tài) 詳細(xì)含義
0 匹配成功
1 未搜索到匹配的文本行
2 命令或程序存在錯(cuò)誤而未執(zhí)行
23-17 grep-q參數(shù)示例_c2i.jpg

echo $? 用于顯示上一條命令退出狀態(tài)

正則表達(dá)式示例

  • 1击蹲、匹配行首


    23-18 正則表達(dá)式行首_c2i.jpg
  • 2署拟、設(shè)置大小寫(xiě)


    23-19 正則表達(dá)式大小寫(xiě)_c2i.jpg
  • 3、匹配重復(fù)字符


    23-20 正則表達(dá)式重復(fù)項(xiàng)_c2i.jpg
  • 4歌豺、匹配轉(zhuǎn)義符


    23-21 正則表達(dá)式轉(zhuǎn)義符_c2i.jpg
  • 5推穷、POSIX字符類(lèi)


    23-22 grep-POSIX字符類(lèi)_c2i.jpg
  • 6、精確匹配


    23-23 正則表達(dá)式精確匹配_c2i.jpg
  • 7类咧、或字符"|"是擴(kuò)展的正則表達(dá)式中定義的馒铃,因此grep在使用時(shí)需要加上-E選項(xiàng)才能支持,示例如下所示:


    23-24 正則表達(dá)式或字符_c2i.jpg

??grep和正則表達(dá)式結(jié)合起來(lái)痕惋,加以靈活使用区宇,功能十分強(qiáng)大,大家可根據(jù)實(shí)際情況多使用值戳。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末议谷,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子堕虹,更是在濱河造成了極大的恐慌卧晓,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評(píng)論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件赴捞,死亡現(xiàn)場(chǎng)離奇詭異逼裆,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)赦政,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)胜宇,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人恢着,你說(shuō)我怎么就攤上這事桐愉。” “怎么了掰派?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,138評(píng)論 0 355
  • 文/不壞的土叔 我叫張陵仅财,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我碗淌,道長(zhǎng)盏求,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,791評(píng)論 1 295
  • 正文 為了忘掉前任亿眠,我火速辦了婚禮碎罚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘纳像。我一直安慰自己荆烈,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,794評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著憔购,像睡著了一般宫峦。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上玫鸟,一...
    開(kāi)封第一講書(shū)人閱讀 51,631評(píng)論 1 305
  • 那天导绷,我揣著相機(jī)與錄音,去河邊找鬼屎飘。 笑死妥曲,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的钦购。 我是一名探鬼主播檐盟,決...
    沈念sama閱讀 40,362評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼押桃!你這毒婦竟也來(lái)了葵萎?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,264評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤唱凯,失蹤者是張志新(化名)和其女友劉穎羡忘,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體波丰,經(jīng)...
    沈念sama閱讀 45,724評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,900評(píng)論 3 336
  • 正文 我和宋清朗相戀三年舶得,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了掰烟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,040評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡沐批,死狀恐怖纫骑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情九孩,我是刑警寧澤先馆,帶...
    沈念sama閱讀 35,742評(píng)論 5 346
  • 正文 年R本政府宣布,位于F島的核電站躺彬,受9級(jí)特大地震影響煤墙,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜宪拥,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,364評(píng)論 3 330
  • 文/蒙蒙 一仿野、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧她君,春花似錦脚作、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,944評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)劣针。三九已至,卻和暖如春亿扁,著一層夾襖步出監(jiān)牢的瞬間捺典,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,060評(píng)論 1 270
  • 我被黑心中介騙來(lái)泰國(guó)打工魏烫, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留辣苏,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,247評(píng)論 3 371
  • 正文 我出身青樓哄褒,卻偏偏與公主長(zhǎng)得像稀蟋,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子呐赡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,979評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • http://blog.sina.com.cn/s/blog_47d5f1b801015ea7.html首先要記住...
    水平閱讀 1,159評(píng)論 0 2
  • Ubuntu的發(fā)音 Ubuntu,源于非洲祖魯人和科薩人的語(yǔ)言怀泊,發(fā)作 oo-boon-too 的音茫藏。了解發(fā)音是有意...
    螢火蟲(chóng)de夢(mèng)閱讀 99,274評(píng)論 9 467
  • linux資料總章2.1 1.0寫(xiě)的不好抱歉 但是2.0已經(jīng)改了很多 但是錯(cuò)誤還是無(wú)法避免 以后資料會(huì)慢慢更新 大...
    數(shù)據(jù)革命閱讀 12,168評(píng)論 2 33
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)霹琼,斷路器务傲,智...
    卡卡羅2017閱讀 134,659評(píng)論 18 139
  • 什么也不想寫(xiě)。因?yàn)檫M(jìn)入減肥綜合癥狀態(tài):想發(fā)火枣申、想吃售葡、不想做任何事。 然而我剛開(kāi)始減肥才十天忠藤! 呃呃呃挟伙! 所以到三月...
    寒晗Tylor閱讀 336評(píng)論 0 0