作為一個系統管理員,文本處理功能是經常使用的,熟練地使用各種文本工具有助于提高工作效率,從繁忙的工作中早點解脫。下面就來介紹處理文本的常用命令。
處理文本的命令大致分為:
查看文件內容:cat、less、more
按行抽取文件內容:head、tail
按列抽文件內容?。篶ut
統計文本:wc
整理文本:sort、uniq
比較文本:diff、patch
一、查看文件內容
1、cat:讀取一個或多個文件,然后復制到標準輸出。
用法:cat [options] file1 [file2…]
常用的options有:
-n: 對顯示出的每一行進行編號
-b: 對顯示出的非空行進行編號
-s: 壓縮連續的空行成一行
-A: 顯示所有的控制符,如:tab、換行、行結束符等。
-E: 顯示行結束符。在linux,行結束符用$標識。
壓縮連續的空行:
2、less和more:分頁查看工具
用法:less|more file
“回車”:查看下一頁
“b”:查看上一頁
“enter”:查看下一行
“p“:查看上一行。
區別:more不能使用”p”查看上一行,并且more在查看到文件底部時,會退出查看,而less仍然是查看狀態。
總結:在查看內容較少的文件時,建議使用cat,在查看文件內容較多的文件時,建議使用less。
二、按行截取文件內容
1、查看文件的前n行:head
用法:head [options] file
常用的options:
-n #:指定獲取前#行的內容。如果未指定,默認顯示前10行。
例:顯示/etc/passwd前8行的內容
2、查看文件的后n行:tail
用法:tail [options] file
常用options:
-n #: 指定獲取后#行的內容。如果未指定,默認顯示后10行。
-f: 跟蹤顯示文件新追加的內容,常用日志監控
tail –f 可以簡寫為tailf
例2.1:顯示/etc/passwd后8行的內容:
例2.2:追蹤查看/var/log/messages文件。
若只想查看新增的日志內容,可以指定:tailf –n 0 /var/log/messages
退出查看“ctrl + c“
三、按列抽取文本:cut
文本中的內容,并不是每一行都是我們需要的。比如,我只需要/etc/passwd文件中的用戶名、用戶id、用戶登錄shell,這時,就需要按列隊文本進行處理。
用法: cut [options] file
常用options:
-d Delimiter:指明分隔符,默認為tab。也可以為“ “(表示空白)、”:”等。
-f Fileds: 指明顯示分割后的那些列。
顯示模式:
1)、#:第#個字段
2)、#,#: 離散的多個字段。如 1,3,7
3)、#-#:連續的多個字段
4)、混合使用,將上述三種模式混合。如:1,3,5-7.
可以和管道配合,這樣能觀察文本的格式特點,對其進行分隔
例:顯示/etc/passwd文件中的用戶名、用戶id、用戶登錄shell。
也可以不和管道配合,直接切割文件
cut命令也常合其他系統管理命令配合使用,對其中的某個參數進行監控。
例: 取出磁盤空間使用率
tr –s “ “ “:”:將多余的空格合并為一個,并替換為“:“。
四、統計文本wc
法:wc [options] file
常用options:
-l :只統計行數
-w:統計單詞數
例:統計/etc/passwd有多少行,有多少個單詞。
五、整理文本
對文本進行排序,去掉重復的行等。
5.1、sort
用法:sort [options] file
常用options:
-n :按數字進行排序。不指定默認按字符進行排序,數字也被當作字符
-r:逆向排序。
-u:刪除輸出中重復的行
-t Delimiter:指定分隔符
-k #:按分隔后的知道字段進行排序。
例:/etc/passwd按id進行排序
/etc/passwd按id逆向排序
5.2、uniq:刪除重復的前后相接的行
用法:unip [options] file
常用options:
-c :顯示每行重復出現的次數
-d :僅顯示重復過的行
-u :僅顯示不曾重復的行。
例:統計當前遠程登陸到本機的ip地址及其連接數
六、文本比較:diff
用法:diff file1 file2 比較兩個文本之間的區別。
diff命令的輸出被保存在一種叫做“補丁”的文件中,配合patch命令對文件版本管理。
常用options:
-u 選項來輸出“統一的( unified)” diff格式文件,最適用于補丁文件。
-b 選項來自動備份改變了的文件
例:復制/etc/fstab到當前文件,一名為fs1,一名為fs2,對fs2進行修改,在第一行添加“last modify“。之后通過補丁將fs1的內容更新為fs2的內容。
文本處理三劍客grep、sed、awk放在后續的文章中介紹
原創文章,作者:M20-1鐘明波,如若轉載,請注明出處:http://www.www58058.com/29753