find文件查找_第1頁(yè)
find文件查找_第2頁(yè)
find文件查找_第3頁(yè)
find文件查找_第4頁(yè)
find文件查找_第5頁(yè)
已閱讀5頁(yè),還剩6頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、find 文件查找查找txt和pdf文件1find . ( -name "*.txt" -o -name "*.pdf" ) -print正則方式查找.txt和pdf1find . -regex ".*(.txt|.pdf)$"-iregex: 忽略大小寫的正則否定參數(shù)查找所有非txt文本1find . ! -name "*.txt" -print指定搜索深度打印出當(dāng)前目錄的文件(深度為1)1find . -maxdepth 1 -type f定制搜索按類型搜索:1find . -type d -print /只列

2、出所有目錄-type f 文件 / l 符號(hào)鏈接按時(shí)間搜索:-atime 訪問(wèn)時(shí)間 (單位是天,分鐘單位則是-amin,以下類似)-mtime 修改時(shí)間 (內(nèi)容被修改)-ctime 變化時(shí)間 (元數(shù)據(jù)或權(quán)限變化)最近7天被訪問(wèn)過(guò)的所有文件:1find . -atime 7 -type f -print按大小搜索:w字 k M G尋找大于2k的文件1find . -type f -size +2k按權(quán)限查找:1find . -type f -perm 644 -print /找具有可執(zhí)行權(quán)限的所有文件按用戶查找:1find . -type f -user weber -print/ 找用戶web

3、er所擁有的文件找到后的后續(xù)動(dòng)作刪除:刪除當(dāng)前目錄下所有的swp文件:1find . -type f -name "*.swp" -delete執(zhí)行動(dòng)作(強(qiáng)大的exec)1find . -type f -user root -exec chown weber ; /將當(dāng)前目錄下的所有權(quán)變更為weber注:是一個(gè)特殊的字符串,對(duì)于每一個(gè)匹配的文件,會(huì)被替換成相應(yīng)的文件名;eg:將找到的文件全都copy到另一個(gè)目錄:1find . -type f -mtime +10 -name "*.txt" -exec cp OLD ;結(jié)合多個(gè)命令tips: 如果需要后

4、續(xù)執(zhí)行多個(gè)命令,可以將多個(gè)命令寫成一個(gè)腳本。然后 -exec 調(diào)用時(shí)執(zhí)行腳本即可;1-exec ./commands.sh ;-print的定界符默認(rèn)使用n'作為文件的定界符;-print0 使用”作為文件的定界符,這樣就可以搜索包含空格的文件;grep 文本搜索grep match_patten file / 默認(rèn)訪問(wèn)匹配行常用參數(shù)-o 只輸出匹配的文本行 VS -v 只輸出沒(méi)有匹配的文本行-c 統(tǒng)計(jì)文件中包含文本的次數(shù)1grep -c "text" filename-n 打印匹配的行號(hào)-i 搜索時(shí)忽略大小寫-l 只打印文件名在多級(jí)目錄中對(duì)文本遞歸搜索(程序員搜代

5、碼的最愛(ài)):1grep "class" . -R -n匹配多個(gè)模式1grep -e "class" -e "vitural" filegrep輸出以作為結(jié)尾符的文件名:(-z)1grep "test" file* -lZ| xargs -0 rmxargs 命令行參數(shù)轉(zhuǎn)換xargs 能夠?qū)⑤斎霐?shù)據(jù)轉(zhuǎn)化為特定命令的命令行參數(shù);這樣,可以配合很多命令來(lái)組合使用。比如grep,比如find;將多行輸出轉(zhuǎn)化為單行輸出cat file.txt| xargsn 是多行文本間的定界符將單行轉(zhuǎn)化為多行輸出cat single.tx

6、t | xargs -n 3-n:指定每行顯示的字段數(shù)xargs參數(shù)說(shuō)明-d 定義定界符 (默認(rèn)為空格 多行的定界符為 n)-n 指定輸出為多行-I 指定替換字符串,這個(gè)字符串在xargs擴(kuò)展時(shí)會(huì)被替換掉,用于待執(zhí)行的命令需要多個(gè)參數(shù)時(shí)eg:1cat file.txt | xargs -I ./command.sh -p -1-0:指定為輸入定界符eg:統(tǒng)計(jì)程序行數(shù)1find source_dir/ -type f -name "*.cpp" -print0 |xargs -0 wc -lsort 排序字段說(shuō)明:-n 按數(shù)字進(jìn)行排序 VS -d 按字典序進(jìn)行排序-r 逆序排

7、序-k N 指定按第N列排序eg:12sort -nrk 1 data.txtsort -bd data / 忽略像空格之類的前導(dǎo)空白字符uniq 消除重復(fù)行消除重復(fù)行1sort unsort.txt | uniq統(tǒng)計(jì)各行在文件中出現(xiàn)的次數(shù)1sort unsort.txt | uniq -c找出重復(fù)行1sort unsort.txt | uniq -d可指定每行中需要比較的重復(fù)內(nèi)容:-s 開(kāi)始位置 -w 比較字符數(shù)用tr進(jìn)行轉(zhuǎn)換通用用法12echo 12345 | tr '0-9' '9876543210' /加解密轉(zhuǎn)換,替換對(duì)應(yīng)字符cat text| tr &

8、#39;t' ' ' /制表符轉(zhuǎn)空格tr刪除字符1cat file | tr -d '0-9' / 刪除所有數(shù)字-c 求補(bǔ)集12cat file | tr -c '0-9' /獲取文件中所有數(shù)字cat file | tr -d -c '0-9 n' /刪除非數(shù)字?jǐn)?shù)據(jù)tr壓縮字符tr -s 壓縮文本中出現(xiàn)的重復(fù)字符;最常用于壓縮多余的空格1cat file | tr -s ' '字符類tr中可用各種字符類:alnum:字母和數(shù)字alpha:字母digit:數(shù)字space:空白字符lower:小寫upper:大

9、寫cntrl:控制(非可打?。┳址鹥rint:可打印字符使用方法:tr :class: :class:1eg: tr ':lower:' ':upper:'cut 按列切分文本截取文件的第2列和第4列:1cut -f2,4 filename去文件除第3列的所有列:1cut -f3 -complement filename-d 指定定界符:1cat -f2 -d"" filenamecut 取的范圍N- 第N個(gè)字段到結(jié)尾-M 第1個(gè)字段為MN-M N到M個(gè)字段cut 取的單位-b 以字節(jié)為單位-c 以字符為單位-f 以字段為單位(使用定界符)e

10、g:12cut -c1-5 file /打印第一到5個(gè)字符cut -c-2 file /打印前2個(gè)字符paste 按列拼接文本將兩個(gè)文本按列拼接到一起;1234567891011cat file112 cat file2colinbook paste file1 file21 colin2 book默認(rèn)的定界符是制表符,可以用-d指明定界符paste file1 file2 -d “,”1,colin2,bookwc 統(tǒng)計(jì)行和字符的工具wc -l file / 統(tǒng)計(jì)行數(shù)wc -w file / 統(tǒng)計(jì)單詞數(shù)wc -c file / 統(tǒng)計(jì)字符數(shù)sed 文本替換利器首處替換1seg 's/t

11、ext/replace_text/' file /替換每一行的第一處匹配的text全局替換1seg 's/text/replace_text/g' file默認(rèn)替換后,輸出替換后的內(nèi)容,如果需要直接替換原文件,使用-i:1seg -i 's/text/repalce_text/g' file移除空白行:1sed '/$/d' file變量轉(zhuǎn)換已匹配的字符串通過(guò)標(biāo)記&來(lái)引用.12echo this is en example | seg 's/w+/&/g'$>this is en example子串匹

12、配標(biāo)記第一個(gè)匹配的括號(hào)內(nèi)容使用標(biāo)記 1 來(lái)引用1sed 's/hello(0-9)/1/'雙引號(hào)求值sed通常用單引號(hào)來(lái)引用;也可使用雙引號(hào),使用雙引號(hào)后,雙引號(hào)會(huì)對(duì)表達(dá)式求值:1sed 's/$var/HLLOE/'當(dāng)使用雙引號(hào)時(shí),我們可以在sed樣式和替換字符串中指定變量;12345eg:p=pattenr=replacedecho "line con a patten" | sed "s/$p/$r/g"$>line con a replaced其它示例字符串插入字符:將文本中每行內(nèi)容(PEKSHA) 轉(zhuǎn)換為

13、PEK/SHA1sed 's/.3/awk 數(shù)據(jù)流處理工具awk腳本結(jié)構(gòu)awk BEGIN statements statements2 END statements 工作方式1.執(zhí)行begin中語(yǔ)句塊;2.從文件或stdin中讀入一行,然后執(zhí)行statements2,重復(fù)這個(gè)過(guò)程,直到文件全部被讀取完畢;3.執(zhí)行end語(yǔ)句塊;print 打印當(dāng)前行使用不帶參數(shù)的print時(shí),會(huì)打印當(dāng)前行;1echo -e "line1nline2" | awk 'BEGINprint "start" print END print "End&

14、quot; 'print 以逗號(hào)分割時(shí),參數(shù)以空格定界;123echo | awk ' var1 = "v1" ; var2 = "V2" var3="v3" print var1, var2 , var3; '$>v1 V2 v3使用-拼接符的方式(”"作為拼接符);123echo | awk ' var1 = "v1" ; var2 = "V2" var3="v3" print var1"-"var2&q

15、uot;-"var3; '$>v1-V2-v3特殊變量: NR NF $0 $1 $2NR:表示記錄數(shù)量,在執(zhí)行過(guò)程中對(duì)應(yīng)當(dāng)前行號(hào);NF:表示字段數(shù)量,在執(zhí)行過(guò)程總對(duì)應(yīng)當(dāng)前行的字段數(shù);$0:這個(gè)變量包含執(zhí)行過(guò)程中當(dāng)前行的文本內(nèi)容;$1:第一個(gè)字段的文本內(nèi)容;$2:第二個(gè)字段的文本內(nèi)容;1echo -e "line1 f2 f3n line2 n line 3" | awk 'print NR":"$0"-"$1"-"$2'打印每一行的第二和第三個(gè)字段:1awk 'pr

16、int $2, $3' file統(tǒng)計(jì)文件的行數(shù):1awk ' END print NR' file累加每一行的第一個(gè)字段:12echo -e "1n 2n 3n 4n" | awk 'BEGINnum = 0 ;print "begin" sum += $1; END print "=" print sum '傳遞外部變量123var=1000echo | awk 'print vara' vara=$var # 輸入來(lái)自stdinawk 'print vara'

17、 vara=$var file # 輸入來(lái)自文件用樣式對(duì)awk處理的行進(jìn)行過(guò)濾awk NR awk NR=1,NR=4 print file #行號(hào)等于1和4的打印出來(lái)awk /linux/ #包含linux文本的行(可以用正則表達(dá)式來(lái)指定,超級(jí)強(qiáng)大)awk !/linux/ #不包含linux文本的行設(shè)置定界符使用-F來(lái)設(shè)置定界符(默認(rèn)為空格)awk -F: print $NF /etc/passwd讀取命令輸出使用getline,將外部shell命令的輸出讀入到變量cmdout中;1echo | awk '"grep root /etc/passwd" | ge

18、tline cmdout; print cmdout '在awk中使用循環(huán)for(i=0;ifor(i in array)print arrayi;eg:以逆序的形式打印行:(tac命令的實(shí)現(xiàn))1234seq 9| awk 'lifoNR = $0; lno=NR END for(;lno>-1;lno-)print lifolno; 'awk實(shí)現(xiàn)head、tail命令head:1awk 'NR<=10print' filenametail:12awk 'bufferNR%10 = $0; ENDfor(i=0;i<11;i+)

19、 print bufferi %10 ' filename打印指定列awk方式實(shí)現(xiàn):1ls -lrt | awk 'print $6'cut方式實(shí)現(xiàn)1ls -lrt | cut -f6打印指定文本區(qū)域確定行號(hào)1seq 100| awk 'NR=4,NR=6print'確定文本打印處于start_pattern 和end_pattern之間的文本;1awk '/start_pattern/, /end_pattern/' filenameeg:12seq 100 | awk '/13/,/15/'cat /etc/passwd| awk '/mai.*mail/,/news.*news/'awk常用內(nèi)建函數(shù)index(string,search_string):返回search_string在string中出現(xiàn)的位置sub(regex,replace

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論