過濾器--4 (2)_第1頁
過濾器--4 (2)_第2頁
過濾器--4 (2)_第3頁
過濾器--4 (2)_第4頁
過濾器--4 (2)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、過濾器 1過濾器 文本過濾 就是獲取文本輸入流,在文本上執(zhí)行某些轉(zhuǎn)換或什么都不做,然后將它發(fā)送到輸出流的過程 2Cat-獲取輸入并輸出語法:cat -bns file簡單輸入輸出:cat (ctrl+D)重定向創(chuàng)建文件:cat data cat data 復制文件:cat newdata顯示文件: cat file43Split劃分文件split OPTION INPUT PREFIX 將一個檔案分割成數(shù)個。從 INPUT 分割輸出成固定大小的檔案,其檔名依序為 PREFIXaa, PREFIXab.;PREFIX 默認值為 x。若沒有 INPUT 檔或為 -,則從標準輸入讀進資料。-d 使用

2、數(shù)字而不是字母作為后綴名 -a X 指定后綴名的長度,默認為2位 -l num 分割后文件行數(shù)4C程序生成6w行數(shù)據(jù)文件5tac Tac是cat的倒寫,意思也和它是相反的。cat是從第一行顯示到最后一行,而tac是從最后一行顯示到第一行 用法與cat類似6rev rev 是把每行的字符反轉(zhuǎn) rootlocalhost $ cat filejj d skkloprootlocalhost $ rev files d jjkkpol7head命令 :head -n lines默認 選項不指定任何選項的時候,比如執(zhí)行head file,則顯示file文件的全部內(nèi)容。-n 選項顯示指定文件的前n行,n

3、為一個整數(shù)。8tail命令:tail -n lines 默認 選項不指定任何選項的時候,比如執(zhí)行tail file,則顯示file文件的全部內(nèi)容。 -n 選項顯示指定文件的后n行,n為一個整數(shù)。9刪除數(shù)據(jù)列:colrm語法:colrm 開始列數(shù)編號colrm指令從標準輸入設備讀取,轉(zhuǎn)而輸出到標準輸出設備。如果不加任何參數(shù),則該指令不會過濾任何一行。 10書后習題11文件比較和抽取12比較文件-cmp語法:cmp file1 file2特點:逐字節(jié)比較,可以比較圖片、音樂等文檔13Comm-比較有序文本文件語法:comm -123 file1 file2逐行地比較兩個排好序文件的差異,并將其結(jié)果

4、顯示出來,如果沒有指定任何參數(shù),則會把結(jié)果分成3列顯示:第1列僅是在第1個文件中出現(xiàn)過的行,第2列是僅在第2個文件中出現(xiàn)過的行,第3列則是在第1與第2個文件里都出現(xiàn)過的行。 選項1、2或3抑制相應的列顯示。例如comm - 12就只顯示在兩個文件中都存在的行;comm - 23只顯示在第一個文件中出現(xiàn)而未在第二個文件中出現(xiàn)的行;comm - 123則什么也不顯示。 14rootlocalhost unix# cat frickalisonbarbarabenchunknoahrootlocalhost unix# cat frackalisonbarbaracandychucknoahsuer

5、ootlocalhost unix# comm frick frack alison barbaraben candy chuckchunk noah sue15只能比較排序的文件-否則無意義rootlocalhost unix# cat frick1barbarabenchunknoahalisonrootlocalhost unix# comm frick1 frack alison barbaraben candy chuckchunk noahalison sue16只能比較排序的文件-否則無意義rootlocalhost unix# cat a1abdcrootlocalhost u

6、nix# cat b1abcdrootlocalhost unix# comm a1 b1 a b c dcrootlocalhost unix# comm b1 a1 a bc d c17diff顯示將第一個文件修改為第二個文件所需要遵循的指示18rootlocalhost unix# cat bgacrootlocalhost unix# cat aagcrootlocalhost unix# diff a b1d0 arootlocalhost unix# diff b a1d0 g號是第2個文件中增加或刪除的行 19Diff選項-i忽略大小寫區(qū)別-w忽略空白符-b忽略空白符數(shù)量區(qū)別20

7、-c改變輸出格式-上下文輸出格式 rootlocalhost unix# diff -c a b* a 2010-12-17 11:20:00.000000000 +0800- b 2010-12-16 16:24:51.000000000 +0800* 1,4 *- d g! b c- 1,3 - g! a crootlocalhost unix# cat adgarootlocalhost unix# diff -c a b* a 2010-12-17 11:20:49.000000000 +0800- b 2010-12-16 16:24:51.000000000 +0800* 1,3

8、*- d g a- 1,3 - g a+ c指第1個文件一共有4行指第2個文件一共有3行 比較的文件的后者比前著多一行 比較的文件的后者比前著少一行! 比較的文件兩者有差別的行 21-u改變輸出格式-統(tǒng)一輸出格式 rootlocalhost unix# diff -u a b- a 2010-12-17 11:20:49.000000000 +0800+ b 2010-12-16 16:24:51.000000000 +0800 -1,3 +1,3 -d g a+c -1,3是指第1個文件一共有3行,+1,3 是指第2個文件一共有3行 統(tǒng)一格式的輸出更加緊湊,所以更易于理解,更易于修改 22-

9、y改變輸出格式-并排格式輸出 rootlocalhost unix# diff -y a bd crootlocalhost unix# diff -y a bg ga ad | c這種并排格式的對比一目了然,可以快速找到不同的地方 23sdiffrootlocalhost unix# sdiff a bg ga ad | crootlocalhost unix# sdiff -l a bg (a (d | crootlocalhost unix# sdiff -s a bd | c24假如你想查看兩個文件是否不同又不想顯示差異之處的話,可以加上q選項:rootlocalhost diff#

10、diff hello.c hello_diff.c -qFiles hello.c and hello_diff.c differ 25注意點換行符rootlocalhost unix# cat habrootlocalhost unix# cat h1abrootlocalhost unix# diff h h12c2 b No newline at end of filerootlocalhost unix# cat h1abrootlocalhost unix# diff h h1Windows文件系統(tǒng)中的換行符是 rn Apple的文件系統(tǒng)中的換行符是 r Unix的文件系統(tǒng)中的換行符

11、是 n dos2unixmac2unixunix2dos 26Cut-抽取指定數(shù)據(jù)列語法:cut c list fileList是要抽取的列的列表Who | cut c 1-8語法:cut f list -d deli -s fileList是要抽取的字段的列表S抑制沒有定界符deli的行輸出27Paste-組合數(shù)據(jù)列語法: paste -d char file-d 指定不同于空格或tab鍵的域分隔符。paste -d: pas2 pas1 P.Jones:ID897S.Round:ID666L.Clip:ID982 28nl創(chuàng)建行號語法:nl -v start -I increment -b

12、 a -n ln|rn|rz fileStart是起始號,-i是增量,-b a強制對空行編號,-n數(shù)字格式選項,ln左對齊(無前導0) ,rn右對齊(無前導0) ,rz右對齊(有前導0)29Wc-統(tǒng)計行、單詞、字符數(shù)量語法:wc -clLw fileC統(tǒng)計字符,l統(tǒng)計行,w統(tǒng)計單詞,L輸入中最大行長度統(tǒng)計單個文件:Wc file統(tǒng)計多個文件:wc file1 file2例:統(tǒng)計文件數(shù)量 ls /etc | wc -l包括換行符無換行符,不計行數(shù)P381例30patchpatch options originalfile patchfile如果patchfile為空則從標準輸入讀取patchfi

13、le內(nèi)容;如果originalfile也為空,則從patchfile(肯定來自標準輸入)中讀取需要打補丁的文件名。因此,如果需要修改的是目錄,一般都必須在patchfile中記錄目錄下的各個文件名。絕大多數(shù)情況下,patch都用以下這種簡單的方式使用:patch -pnum patchfilepatch -R /tmp/ -r 是一個遞歸選項,設置了這個選項,diff會將兩個不同版本源代碼目錄中的所有對應文件全部都進行一次比較,包括子目錄文件。 -N表示如果某個文件僅在一個目錄中出現(xiàn),則假定其在另一個目錄中為空文件。確保補丁文件將正確地處理已經(jīng)創(chuàng)建或刪除文件的情況。 33第二步 cd /tmp

14、; patch -p1 或patch -p0 /tmp/path.diff 3435*diff -Nur linux-2.4.15/Make patch-2.4.16- linux-2.4.15/Makefile Thu Nov 22 17:22:58 2001+ linux/Makefile Sat Nov 24 16:21:53 2001 -1,7 +1,7 VERSION = 2 PATCHLEVEL = 4-SUBLEVEL = 15-EXTRAVERSION =-greased-turkey36*patch首先嘗試當前目錄(或者-d參數(shù)指定的目錄)下的linux-2.4.15/Makefile文件是否存在,如果不存在則試圖對linux/Makefile文件操作,僅當兩者都不存在時(或者設置了POSIXLY_CORRECT環(huán)

溫馨提示

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

評論

0/150

提交評論