Shell指令碼中find和grep命令的區別

2021-09-23 05:52:00 字數 1076 閱讀 2563

在shell指令碼中find 和 grep 同樣都是搜尋命令。

find 命令用於在系統中搜尋符合條件的檔名,如果需要模糊查詢,則使用萬用字元進行匹配。搜尋時檔名是完全匹配的。

例如:[root@localhost ~]# touch abc

#建立檔案abc

[root@localhost ~]# touch abcd

#建立檔案abcd

[root@localhost ~]# find. -name 「abc」

./abc

#搜尋檔名是abc的檔案,只會找到abc檔案,而不會找到abcd檔案

#雖然abcd檔名中包含abc,但是find是完全匹配的,只有和要搜尋的資料完全一樣,才能找到。

完全匹配的意思就是:如果想要找到 abcd 檔案,就必須依靠萬用字元,如 find -name 「abc*」。搜尋的內容必須和原始檔案一模一樣,才能被搜尋到。find 命令是可以通過 -regex 選項識別正規表示式規則的,也就是說,find 命令可以按照正規表示式規則匹配,而正規表示式是模糊匹配。

grep 命令用於在檔案中搜尋符合條件的字串,如果需要模糊查詢,則使用正規表示式進行匹配。搜尋時字串是包含匹配的。

grep 命令和 find 命令不一樣,使用 grep 命令在檔案中查詢符合條件的字串時,只要搜尋的內容包含在資料行中,就會列出整行內容。

例如:[root@localhost ~]# echo abc > test

#在test檔案中寫入abc資料

[root@localhost ~]# echo abed >> test

#在test檔案中追加abcd資料

[root@localhost ~]# grep 「abc」 test

abcabcd

#grep命令查詢時,只要資料行中包含abc,就會列出

#所以abc和abcd都可以查詢到

shell指令碼 find命令

find命令用於查詢,功能很強大,格式如下 find pathname options print exec ok pathname find命令所查詢的目錄路徑。例如用.來表示當前目錄,用 來表示系統根目錄。print find命令將匹配的檔案輸出到標準輸出。exec find命令對匹配的檔案執行...

shell指令碼之find

find pathname options print exec ok 引數pathname find命令所查詢的目錄路徑。例如用.來表示當前目錄,用 來表示系統根目錄。print find命令將匹配的檔案輸出到標準輸出。exec find命令對匹配的檔案執行該引數所給出的shell命令。相應命令的...

Shell指令碼四 find

3 使用exec或ok來執行shell命令 4 find命令結合exec,ok的例子 5 find命令結合xargs的例子 find pathname options print exec ok 引數說明 pathname find命令所查詢的目錄路徑。例如用.來表示當前目錄,用 來表示系統根目錄,...