




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、find 文件查找查找txt和pdf文件 find . ( -name "*.txt" -o -name "*.pdf" ) -print正則方式查找.txt和pdf find . -regex ".*(.txt|.pdf)$"-iregex: 忽略大小寫的正則否定參數(shù)查找所有非txt文本 find . ! -name "*.txt" -print指定搜索深度打印出當(dāng)前目錄的文件(深度為1) find . -maxdepth 1 -type f 定制搜索按類型搜索: find . -type d -print /只
2、列出所有目錄-type f 文件 / l 符號鏈接按時間搜索:-atime 訪問時間 (單位是天,分鐘單位則是-amin,以下類似)-mtime 修改時間 (內(nèi)容被修改)-ctime 變化時間 (元數(shù)據(jù)或權(quán)限變化)最近7天被訪問過的所有文件: find . -atime 7 -type f -print按大小搜索:w字 k M G尋找大于2k的文件 find . -type f -size +2k按權(quán)限查找: find . -type f -perm 644 -print /找具有可執(zhí)行權(quán)限的所有文件按用戶查找: find . -type f -user weber -print/ 找用戶we
3、ber所擁有的文件找到后的后續(xù)動作刪除:刪除當(dāng)前目錄下所有的swp文件: find . -type f -name "*.swp" -delete執(zhí)行動作(強大的exec) find . -type f -user root -exec chown weber ; /將當(dāng)前目錄下的所有權(quán)變更為weber注:是一個特殊的字符串,對于每一個匹配的文件,會被替換成相應(yīng)的文件名;eg:將找到的文件全都copy到另一個目錄: find . -type f -mtime +10 -name "*.txt" -exec cp OLD ;結(jié)合多個命令tips: 如果需要
4、后續(xù)執(zhí)行多個命令,可以將多個命令寫成一個腳本。然后 -exec 調(diào)用時執(zhí)行腳本即可; -exec ./commands.sh ;-print的定界符默認使用'n'作為文件的定界符;-print0 使用'0'作為文件的定界符,這樣就可以搜索包含空格的文件;grep 文本搜索grep match_patten file / 默認訪問匹配行常用參數(shù)-o 只輸出匹配的文本行 VS -v 只輸出沒有匹配的文本行-c 統(tǒng)計文件中包含文本的次數(shù) grep -c "text" filename-n 打印匹配的行號-i 搜索時忽略大小寫-l 只打印文件名在多級
5、目錄中對文本遞歸搜索(程序員搜代碼的最愛): grep "class" . -R -n匹配多個模式 grep -e "class" -e "vitural" filegrep輸出以0作為結(jié)尾符的文件名:(-z) grep "test" file* -lZ| xargs -0 rmxargs 命令行參數(shù)轉(zhuǎn)換xargs 能夠?qū)⑤斎霐?shù)據(jù)轉(zhuǎn)化為特定命令的命令行參數(shù);這樣,可以配合很多命令來組合使用。比如grep,比如find;將多行輸出轉(zhuǎn)化為單行輸出cat file.txt| xargsn 是多行文本間的定界符將單行轉(zhuǎn)化為
6、多行輸出cat single.txt | xargs -n 3-n:指定每行顯示的字段數(shù)xargs參數(shù)說明-d 定義定界符 (默認為空格 多行的定界符為 n)-n 指定輸出為多行-I 指定替換字符串,這個字符串在xargs擴展時會被替換掉,用于待執(zhí)行的命令需要多個參數(shù)時eg:cat file.txt | xargs -I ./command.sh -p -1-0:指定0為輸入定界符eg:統(tǒng)計程序行數(shù)find source_dir/ -type f -name "*.cpp" -print0 |xargs -0 wc -lsort 排序字段說明:-n 按數(shù)字進行排序 VS -
7、d 按字典序進行排序-r 逆序排序-k N 指定按第N列排序eg:sort -nrk 1 data.txtsort -bd data / 忽略像空格之類的前導(dǎo)空白字符uniq 消除重復(fù)行消除重復(fù)行 sort unsort.txt | uniq 統(tǒng)計各行在文件中出現(xiàn)的次數(shù) sort unsort.txt | uniq -c找出重復(fù)行 sort unsort.txt | uniq -d可指定每行中需要比較的重復(fù)內(nèi)容:-s 開始位置 -w 比較字符數(shù)用tr進行轉(zhuǎn)換通用用法 echo 12345 | tr '0-9' '9876543210' /加解密轉(zhuǎn)換,替換對應(yīng)字符
8、 cat text| tr 't' ' ' /制表符轉(zhuǎn)空格tr刪除字符 cat file | tr -d '0-9' / 刪除所有數(shù)字-c 求補集 cat file | tr -c '0-9' /獲取文件中所有數(shù)字 cat file | tr -d -c '0-9 n' /刪除非數(shù)字數(shù)據(jù)tr壓縮字符tr -s 壓縮文本中出現(xiàn)的重復(fù)字符;最常用于壓縮多余的空格 cat file | tr -s ' '字符類tr中可用各種字符類:alnum:字母和數(shù)字alpha:字母digit:數(shù)字space:空白字符
9、lower:小寫upper:大寫cntrl:控制(非可打印)字符print:可打印字符使用方法:tr :class: :class: eg: tr ':lower:' ':upper:'cut 按列切分文本截取文件的第2列和第4列: cut -f2,4 filename去文件除第3列的所有列: cut -f3 -complement filename-d 指定定界符: cat -f2 -d"" filenamecut 取的范圍N- 第N個字段到結(jié)尾-M 第1個字段為MN-M N到M個字段cut 取的單位-b 以字節(jié)為單位-c 以字符為單位-f
10、 以字段為單位(使用定界符)eg: cut -c1-5 file /打印第一到5個字符 cut -c-2 file /打印前2個字符paste 按列拼接文本將兩個文本按列拼接到一起;cat file112cat file2colinbookpaste file1 file21 colin2 book默認的定界符是制表符,可以用-d指明定界符paste file1 file2 -d ","1,colin2,bookwc 統(tǒng)計行和字符的工具wc -l file / 統(tǒng)計行數(shù)wc -w file / 統(tǒng)計單詞數(shù)wc -c file / 統(tǒng)計字符數(shù)sed 文本替換利器首處替換 se
11、g 's/text/replace_text/' file /替換每一行的第一處匹配的text全局替換 seg 's/text/replace_text/g' file默認替換后,輸出替換后的內(nèi)容,如果需要直接替換原文件,使用-i: seg -i 's/text/repalce_text/g' file移除空白行: sed '/$/d' file變量轉(zhuǎn)換已匹配的字符串通過標記&來引用.echo this is en example | seg 's/w+/&/g'$>this is en ex
12、ample子串匹配標記第一個匹配的括號內(nèi)容使用標記 1 來引用 sed 's/hello(0-9)/1/'雙引號求值sed通常用單引號來引用;也可使用雙引號,使用雙引號后,雙引號會對表達式求值: sed 's/$var/HLLOE/' 當(dāng)使用雙引號時,我們可以在sed樣式和替換字符串中指定變量;eg:p=pattenr=replacedecho "line con a patten" | sed "s/$p/$r/g"$>line con a replaced其它示例字符串插入字符:將文本中每行內(nèi)容(PEKSHA)
13、轉(zhuǎn)換為 PEK/SHA sed 's/.3/&/g' fileawk 數(shù)據(jù)流處理工具awk腳本結(jié)構(gòu)awk ' BEGIN statements statements2 END statements '工作方式1.執(zhí)行begin中語句塊;2.從文件或stdin中讀入一行,然后執(zhí)行statements2,重復(fù)這個過程,直到文件全部被讀取完畢;3.執(zhí)行end語句塊;print 打印當(dāng)前行使用不帶參數(shù)的print時,會打印當(dāng)前行; echo -e "line1nline2" | awk 'BEGINprint "start&
14、quot; print END print "End" ' print 以逗號分割時,參數(shù)以空格定界;echo | awk ' var1 = "v1" ; var2 = "V2" var3="v3" print var1, var2 , var3; '$>v1 V2 v3使用-拼接符的方式(""作為拼接符);echo | awk ' var1 = "v1" ; var2 = "V2" var3="v3&quo
15、t; print var1"-"var2"-"var3; '$>v1-V2-v3特殊變量: NR NF $0 $1 $2NR:表示記錄數(shù)量,在執(zhí)行過程中對應(yīng)當(dāng)前行號;NF:表示字段數(shù)量,在執(zhí)行過程總對應(yīng)當(dāng)前行的字段數(shù);$0:這個變量包含執(zhí)行過程中當(dāng)前行的文本內(nèi)容;$1:第一個字段的文本內(nèi)容;$2:第二個字段的文本內(nèi)容;echo -e "line1 f2 f3n line2 n line 3" | awk 'print NR":"$0"-"$1"-"$2&
16、#39;打印每一行的第二和第三個字段: awk 'print $2, $3' file統(tǒng)計文件的行數(shù): awk ' END print NR' file累加每一行的第一個字段: echo -e "1n 2n 3n 4n" | awk 'BEGINnum = 0 ; print "begin" sum += $1; END print "=" print sum '傳遞外部變量var=1000echo | awk 'print vara' vara=$var # 輸入來自s
17、tdinawk 'print vara' vara=$var file # 輸入來自文件用樣式對awk處理的行進行過濾awk 'NR < 5' #行號小于5awk 'NR=1,NR=4 print' file #行號等于1和4的打印出來awk '/linux/' #包含linux文本的行(可以用正則表達式來指定,超級強大)awk '!/linux/' #不包含linux文本的行設(shè)置定界符使用-F來設(shè)置定界符(默認為空格)awk -F: 'print $NF' /etc/passwd讀取命令輸出
18、使用getline,將外部shell命令的輸出讀入到變量cmdout中;echo | awk '"grep root /etc/passwd" | getline cmdout; print cmdout ' 在awk中使用循環(huán)for(i=0;i<10;i+)print $i;for(i in array)print arrayi;eg:以逆序的形式打印行:(tac命令的實現(xiàn))seq 9| awk 'lifoNR = $0; lno=NR END for(;lno>-1;lno-)print lifolno; 'awk實現(xiàn)head
19、、tail命令head: awk 'NR<=10print' filenametail: awk 'bufferNR%10 = $0; ENDfor(i=0;i<11;i+) print bufferi %10 ' filename打印指定列awk方式實現(xiàn): ls -lrt | awk 'print $6'cut方式實現(xiàn) ls -lrt | cut -f6打印指定文本區(qū)域確定行號 seq 100| awk 'NR=4,NR=6print'確定文本打印處于start_pattern 和end_pattern之間的文本; awk '/start_pattern/, /end_pattern/' filenameeg:seq 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(
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 院內(nèi)美化合同協(xié)議書5篇
- 2025年榆林普通貨運從業(yè)資格證模擬考試
- 2025年大理貨運員初級考試題庫
- 2025年高中化學(xué)新教材同步 必修第一冊 第4章 第3節(jié) 第2課時 化學(xué)鍵 分子間作用力
- 107-廣播對講系統(tǒng)
- 空間環(huán)境監(jiān)測系統(tǒng)產(chǎn)業(yè)分析報告
- 個人汽車公用租賃合同范本
- 勞務(wù)派遣住宿合同范本
- 中學(xué)化學(xué)教學(xué)工作總結(jié)
- 個人自查自糾整改報告
- 課題申報參考:“四新”建設(shè)背景下教育創(chuàng)新與課程數(shù)字化實踐研究
- 2025年煙臺汽車工程職業(yè)學(xué)院高職單招職業(yè)適應(yīng)性測試近5年??及鎱⒖碱}庫含答案解析
- 2025年江蘇農(nóng)牧科技職業(yè)學(xué)院高職單招職業(yè)技能測試近5年??及鎱⒖碱}庫含答案解析
- 2024年長沙衛(wèi)生職業(yè)學(xué)院高職單招職業(yè)技能測驗歷年參考題庫(頻考版)含答案解析
- 2024年度國網(wǎng)營銷安全(用電檢查)安全準入客觀題備考試題庫(附答案)
- 2024年廣東省《輔警招聘考試必刷500題》考試題庫及答案【易錯題】
- 2025正規(guī)民政局離婚協(xié)議書
- 陜西、甘肅、青海、寧夏四省普通高中2024-2025學(xué)年學(xué)業(yè)水平選擇性考試適應(yīng)性演練(含答案)
- 初中生物骨干教師研修培訓(xùn)課件對當(dāng)前我市初中生物課堂教學(xué)的再認識
- 團會:紀念一二九運動
- 2024年6月青少年軟件編程Python等級考試試卷一級真題(含答案和解析)
評論
0/150
提交評論