方法一:find命令
創(chuàng)新互聯(lián)公司是一家專業(yè)提供武隆企業(yè)網(wǎng)站建設(shè),專注與做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、H5頁面制作、小程序制作等業(yè)務(wù)。10年已為武隆眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。
find是最常見和最強(qiáng)大的查找命令,你可以用它找到任何你想找的文件。
命令格式:find 指定目錄 指定條件 指定動作
- 指定目錄: 所要搜索的目錄及其所有子目錄。默認(rèn)為當(dāng)前目錄。
- 指定條件: 所要搜索的文件的特征。
- 指定動作: 對搜索結(jié)果進(jìn)行特定的處理。
如果什么參數(shù)也不加,find默認(rèn)搜索當(dāng)前目錄及其子目錄,并且不過濾任何結(jié)果(也就是返回所有文件),將它們?nèi)硷@示在屏幕上。
使用實(shí)例:
$ find . -name 'my*'
搜索當(dāng)前目錄(含子目錄,以下同)中,所有文件名以my開頭的文件。
$ find . -name 'my*' -ls
搜索當(dāng)前目錄中,所有文件名以my開頭的文件,并顯示它們的詳細(xì)信息。
$ find . -type f -mmin -10
搜索當(dāng)前目錄中,所有過去10分鐘中更新過的普通文件。如果不加-type f參數(shù),則搜索普通文件+特殊文件+目錄。
方法二:locate命令
locate命令其實(shí)是"find -name"的另一種寫法,但是要比后者快得多,原因在于它不搜索具體目錄,而是搜索一個數(shù)據(jù)庫(/var/lib/locatedb),這個數(shù)據(jù)庫中含有本地所有文件信息。Linux系統(tǒng)自動創(chuàng)建這個數(shù)據(jù)庫,并且每天自動更新一次,所以使用locate命令查不到最新變動過的文件。為了避免這種情況,可以在使用locate之前,先使用updatedb命令,手動更新數(shù)據(jù)庫。
使用實(shí)例:
$ locate /etc/sh
搜索etc目錄下所有以sh開頭的文件。
$ locate ~/m
搜索用戶主目錄下,所有以m開頭的文件。
$ locate -i ~/m
搜索用戶主目錄下,所有以m開頭的文件,并且忽略大小寫。
linux shell中使用vi命令打開文本文件后,如果需要查找字符
從開頭搜索
在命令模式下,輸入 / 你要查找的字符
按下回車,可以看到vim把光標(biāo)移動到該字符處
再按n(小寫)查看下一個匹配
按N(大寫)查看上一個匹配(capslock切換大小寫,也可以在小寫狀態(tài)下按shift+n)
從結(jié)尾處搜索
?要搜索的字符串或字符
搜索后,打開別的文件發(fā)現(xiàn)也被高亮了,怎么關(guān)閉?
命令行模式下,輸入:nohlsearch或者:set nohlsearch
可以簡寫成noh喝set-noh
1、vi命令下的查找和替換
1.1 vi下的查找
/helloEnter :向下查找hello匹配字符串
?helloEnter:向上查找hello匹配字符串
使用了查找命令之后,使用如下兩個鍵快速查找:
n:按照同一方向繼續(xù)查找
N:按照反方向查找
hello是需要匹配的字符串,例如:
/nameEnter? ? ? #查找name
/nameEnter? ? #查找name單詞(注意前后的空格)
除此之外,hello還可以使用一些特殊字符,包括(/、^、$、*、.),其中前三個這兩個是vi與vim通用的,“/”為轉(zhuǎn)義字符。
/^nameEnter? ? #查找以name開始的行
/name$Enter? ? #查找以name結(jié)束的行
//^nameEnter? ? #查找^name字符串
1.2 vi下的替換
:s/name/title/? ? ? ? #替換當(dāng)前行第一個 name 為 title
:s/name/title/g? ? #替換當(dāng)前行所有 name 為 title
:n,$s/name/title/? ? #替換第 n 行開始到最后一行中每一行的第一個 name 為 title
:n,$s/name/title/g? ? #替換第 n 行開始到最后一行中每一行所有 name 為 title
#(n 為數(shù)字,若 n 為 .,表示從當(dāng)前行開始到最后一行)
:%s/name/title/? ? ? ? #(等同于 :g/name/s//title/) 替換每一行的第一個 name 為 title
:%s/name/title/g? ? #(等同于 :g/name/s//title/g) 替換每一行中所有 name 為 title
可以使用 #或+ 作為分隔符,此時中間出現(xiàn)的 / 不會作為分隔符
:s#name/#title/#? ? ? ? 替換當(dāng)前行第一個 name/ 為 title/
:%s+/oradata/apras/+/user01/apras1+ (
使用+ 來 替換 / ): /oradata/apras/替換成/user01/apras1/
2.sed和grep配合
命令:sed -i s/yyyy/xxxx/g `grep yyyy -rl --include="*.txt" ./`
作用:將當(dāng)前目錄(包括子目錄)中所有txt文件中的yyyy字符串替換為xxxx字符串。其中,
-i 表示操作的是文件,``括起來的grep命令,表示將grep命令的的結(jié)果作為操作文件。
s/yyyy/xxxx/表示查找yyyy并替換為xxxx,后面跟g表示一行中有多個yyyy的時候,都替換,而不是僅替換第一個
另外,如果不需要查找子目錄,僅需要在當(dāng)前目錄替換,用sed命令就行了,命令如下:sed -i s/xxxx/yyyy/g ./*.txt
3.find命令查找和替換
命令格式:find -name '要查找的文件名' | xargs perl -pi -e 's|被替換的字符串|替換后的字符串|g'
#查找替換當(dāng)前目錄下包含字符串并進(jìn)行替換
find -name '*.txt' | xargs perl -pi -e 's|江蘇|上海|g'
#遞歸查找替換
find . -type f -name '*.html' | xargs perl -pi -e 's|蘇州|上海|g'
find,用于在文件樹中查找文件并作相應(yīng)的處理
-name:按照文件名查找文件
-perm:按照文件權(quán)限查找文件
-user:按照文件屬主來查找文件
-size:按照指定的文件大小查找文件【+n:大于,-n:小于,n:等于】
-group:按照文件所屬的組來查找文件
-mtime-n+n:按照文件更改時間來查找文件,-n表示n天之內(nèi),+n表示n天以前
-newer file1 file2:查找更改時間在file1和file2之間的文件
例如:
find -mtime -2:查找48小時修改過的文件
find -name ".log":查找當(dāng)前目錄以".log"結(jié)尾的文件
find /opt/soft/test -perm 777:查找指定目錄下權(quán)限為777的文件
find -type f -name "*.log":查找當(dāng)前目錄下以".log"結(jié)尾的普通文件
find -type d | sort:查找當(dāng)前所有目標(biāo)目錄并排序
find /home/wansw -size +20M:查找大于20M的文件
locate指令,可以快速定位文件路徑,利用事先建立的系統(tǒng)中的所有文件名稱和路徑的locate數(shù)據(jù)庫,無需遍歷整個文件系統(tǒng),查詢速度較快,為了保證查詢準(zhǔn)確性,需要定期更新?!禠inux就該這么學(xué)》
updatedb:第一次運(yùn)行前,創(chuàng)建locate數(shù)據(jù)庫
grep,用于過濾/搜索指定字符串??梢允褂谜齽t表達(dá)式,能配合多種命令使用。
用法:grep 【選項(xiàng)】 查找內(nèi)容 源文件
-A:顯示符合的行及之后的內(nèi)容
-B:顯示符合的行及之前的內(nèi)容
-C:顯示符合的行及前后的內(nèi)容
-c:計(jì)算符合的行數(shù)目
-n:顯示匹配行和行號
-i:忽略大小寫
規(guī)則表達(dá)式
:'grep'表示匹配所有以grep開頭的行
'表示匹配所有以grep結(jié)尾的行
.:'gr.p'表示匹配'gr'后面接任意字符然后是'p'
:'grep'表示匹配一個或多個空格后緊跟grep的行
[]:[Gg]rep表示匹配Grep與grep
[]:[A-FH-Z]rep表示匹配不以A-F、H-Z開頭并緊跟rep的行
例如(grep命令大多數(shù)時候多要和別的命令一起使用才有意義):
ps -ef | grep -c SVN:查找指定的進(jìn)程的個數(shù)
cat test.txt | grep -f test2.txt:從text2.txt中讀取關(guān)鍵字后在test.txt中搜索
cat test.txt | grep nf text2.txt:從text2.txt中讀取關(guān)鍵字后在text.txt中搜索并顯示行號
grep 'linux' text.txt test2.txt:從多個文件中搜索關(guān)鍵字'linux'
cat test.txt | grep -E 'ed|at':顯示包含ed或at的行
1、連接上相應(yīng)的linux主機(jī),進(jìn)入到等待輸入shell指令的linux命令行狀態(tài)下。
2、在linux命令行下輸入shell指令:find.-name"abc*"|xargsrm-rfv。
3、鍵盤按“回車鍵”運(yùn)行shell指令,此時會看到abc開頭的abc123.txt和abc6swef.txt都被刪除了。
用find指令查找。
關(guān)鍵字,就是搜索引擎中使用的搜索關(guān)鍵詞,技巧的輸入您的關(guān)鍵詞,對搜索內(nèi)容的準(zhǔn)確有很大的幫助。
在搜索引擎行業(yè),英文是keyword,就是希望訪問者了解的產(chǎn)品、服務(wù)或者公司等內(nèi)容名稱的用語。另外,關(guān)鍵字也是電腦語言用語。
分享名稱:查找關(guān)鍵字linux命令 linux命令搜索關(guān)鍵字
URL標(biāo)題:http://m.rwnh.cn/article48/doojphp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、云服務(wù)器、企業(yè)網(wǎng)站制作、App設(shè)計(jì)、網(wǎng)站收錄、網(wǎng)站維護(hù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)