文字處理工具1

2021-08-15 02:56:44 字數 3967 閱讀 6256

本章目錄:

一.各種文字工具來檢視、分析、統計文字

二.grep

三.正規表示式

四.擴充套件正規表示式

五.egrep

一.各種文字工具來檢視、分析、統計文字

1.抽取文字的工具:

1)檔案檢視命令:less和cat

(1)cat -e 檔案1 [檔案2...]:

a.顯示換行符"$"

b.換行的原因:讀取檔案讀到"$"就換行,"$"表示一行的結束

c.檔案的每一行都由"$",預設不顯示,用"-e"才會顯示

(2)cat n 檔案1 [檔案2...]:

a.輸出的結果顯示行號,空行也參與排列

b.檔案的原文不包含行號

(3)cat -b 檔案1 [檔案2...]:

a.輸出的結果顯示行號,空行不參與排列

b.檔案的原文不包含行號

(4)cat -s 檔案1 [檔案2...]:

a.將連續的空行壓縮成乙個空行

b.如果是從windows傳輸過來的檔案,則無效

(5)cat -v 檔案1 [檔案2...]:

a.在每一行的末尾顯示"^m"的符號

b.如果是從windows傳輸過來的檔案,使用"-v"會在每一行的末尾顯示"^m"的符號

c.如果是從windows傳輸過來的檔案,使用"-ve",會在每一行的末尾顯示"^m$"的符號

d.如果是linux系統的檔案,則無效

(rz:將windows下的檔案傳輸到當前的目錄下)

(rpm -qf:檢視檔案來自於哪乙個安裝包)

(6)cat -t 檔案1 [檔案2...]:將tab轉換成"^i"符號

(7)cat -a 檔案1 [檔案2...]:

a.顯示所有控制符

b."-a"的功能等同於"-evt"

(8)tac 檔案1 [檔案2...]:將檔案倒序輸出(最好不要加選項)

2)more

3)less:分頁檢視檔案

4)head:檢視檔案的前多少行

(1)head 檔案1 [檔案2...]:只顯示檔案前10行

(2)head -n 數字# 檔案1 [檔案2...] 或者 -數字# 檔案1 [檔案2...]:

a.指定顯示檔案的前#行

b.當結合別的選項使用的時候不能使用第二種方法

(3)head -c # 檔案1 [檔案2...]:指定顯示檔案的前#個位元組

5)tail:檢視檔案的最後多少行

(1)tail+檔案1[+檔案2...]:只顯示檔案最後10行

(2)rail -n 數字# 檔案1 [+檔案2...] 或者 tail -數字# 檔案1 [檔案2...]:

a.指定顯示檔案的最後#行

b.當結合別的選項使用的時候不能使用第二種方法

(3)tail -f 檔案:

a.根據檔案的實時變化實現監控的功能:

b.在監控端使用"tail [-n #] -f passwd"命令顯示出檔案最後#行,當有新內容追加到檔案中的時候,監控端會自動顯示出來

c.當檔案原有的內容被覆蓋的時候,監控端之前所顯示的內容並不會消失,但實際檔案已經被覆蓋

d.常用來被用作監控日誌

(4)tail -c# 檔案1 [檔案2...]:

a.指定顯示檔案的最後#個位元組

b.注意控制字元也算是乙個位元組

c.例如在每一行的最後會有"$"符號,在顯示最後的#個位元組的時候也包含"$"符號,但是"$"符號預設在不加任何選項的時候是不會顯示的

6)cut:檢視檔案的某些特定列

(1)cut -d[分隔符] -f#1[#2,#3...]:將輸出的內容每一行以分隔符為分割標記,輸出第#1列,第#2列的內容

(2)cut -d[分隔符] -f#n1-#n2:將輸出的內容每一行以分隔符為分割標記,輸出連續的第n1列島第n2列的內容

(3)cut -d[分隔符] #-#,#,#:將前兩種方法綜合使用,用",」分隔

(4)cut -c #1 [#2...]:每一行按字元切割,輸出每一行的第#個字元

(5)--output-delimiter=字串:

a.指定每一行的輸出的分隔符

b.不能單獨使用

(6)前三種用法,如果分隔符為 " ":表示以空格為分隔符

(7)前三種用法不加分隔符,預設分割符為tab         

7)paste:合併兩個檔案同一行的內容到一行顯示出來

(1)paste -d分隔符 檔案1 [檔案2...]:為多個檔案同一行的內容以指定的分隔符為分割顯示出兩個檔案的內容

(2)paste -s 檔案1 [檔案2...]:

a.把同乙個檔案的所有內容顯示為一行,同時將同乙個檔案換行的"$"符號轉換為tab

b.也可以將同乙個檔案的內容由縱向輸出轉換為橫向輸出(這個功能"tr"命令也可以實現)

2.文字統計工具:

1)wc:依次顯示:行數,單詞數,位元組數

(1)wc -l 檔案1 [檔案2...]:只統計行數,多個檔案會統計所有檔案的總行數

 (2)wc -w 檔案1 [檔案2...]:只統計單詞的總數,多個檔案會統計所有檔案的單詞總數

 (3)wc -c 檔案1 [檔案2...]:

a.只計數位元組總數,多個檔案會統計所有檔案的位元組總數

b.utf-8中乙個字母乙個位元組,乙個漢字三個位元組

c.隱藏的"$"符也算乙個位元組

 (4)wc -m 檔案1 [檔案2...]:

a.只計數字元總數,多個檔案會統計所有檔案的字元總數

b.utf-8中乙個字母乙個字元,乙個漢字乙個字元

c.隱藏的"$"符也算乙個字元

d.特殊字元算乙個位元組也算是乙個字元

2)sort:對輸出的內容進行排序,並不改變檔案原有的內容

(1)sort -r 檔案1 [檔案2...]:將輸出的內容按反方向(由上至下)排序,多個檔案會合併在一起並排序

(b)sort -n 檔案1 [檔案2...]:將輸出的內容按照數字的大小排列,多個檔案會合併在一起並排序

(c)sort -f 檔案1 [檔案2...]:排列時忽略(字串中的)字元大小寫,多個檔案會合併在一起並排序

(d)sort -u 檔案1 [檔案2...]:將輸出的內容中的所有重複行顯示為一行,多個檔案會合併在將所有檔案的重複行顯示為一行

(e)sort -t[分隔符] -k#1[#2,#3...] 檔案1

將輸出的內容每一行以分隔符為分割標記,依次按照第#1列,第#2列的內容進行排序

(f)-k x 選項按照使用c字元分隔的x列來整理能夠使用多次 

3)uniq:只將輸出的內容中前後連續重複的行顯示為一行

(1)uniq -c 檔案1 [檔案2...]: 顯示每行重複出現的次數,多個檔案會合併統計

(2)uniq -d 檔案1 [檔案2...]: 僅顯示重複過的行,多個檔案會合併統計

(3)uniq -u 檔案1 [檔案2...]: 僅顯示不曾重複的行,多個檔案會合併統計

(4)常和sort 命令一起配合使用:一般先使用sort,將重複的行排列在一起,再使用"uniq"命令

(rpm -qa:列出系統安裝的所有軟體包)

4)diff:比較兩個檔案之間的區別

(1)diff 檔案1 檔案2:比較兩個檔案的不同點

(2)利用補丁包生成新檔案:

第一步:diff -u 舊檔案 新檔案 > 補丁包的名稱:生成補丁包

第二部:patch -b 舊檔案 補丁包的名稱

執行第二步後,系統會把舊檔案的名字更改為"檔名.orig",新檔案的名稱改為舊檔案的名稱

5)文字統計工具通常要和管道符一起使用

附加:[root@centos6 ~]# service httpd restart

[root@centos6 ~]# iptables -f

[root@centos6 ~]# cd /var/www/html/

[root@centos6 html]# vim index.html   

/var/log/http/access_log:**的訪問日誌

文字處理工具

參考 man,info,magedu講義 宣告 以下英文純屬個人翻譯,英文b級,歡迎糾正,以下內容純屬個人理解,並沒有對錯,只是參考,盜版不糾,才能有限,希望不誤人子弟為好。these commands read and write entire files,possibly transformin...

文字處理工具

linux 上文字處理三劍客 grep 文字過濾工具 模式 pattern awk linux上的實現為gwak 文字報告生成器 格式化文字 正規表示式 regual expression regexp 由一類特殊字元及文字所編寫的模式,其中有些字元表示其字面意義,grep options colo...

文字處理工具

文字處理工具 檔案內容 cat,more,less 檔案擷取 head,tail 按列抽取 cut 排序和統計 sort,wc 按關鍵字抽取 grep 檔案檢視 cat,nl,tac,rev catnl tacrev,每一行的內容會倒序顯示 more,分頁顯示 less,分頁顯示,到最後一行不會退出...