文本處理工具初探

作為一個系統管理員,文本處理功能是經常使用的,熟練地使用各種文本工具有助于提高工作效率,從繁忙的工作中早點解脫。下面就來介紹處理文本的常用命令。

處理文本的命令大致分為:

       查看文件內容:cat、less、more

       按行抽取文件內容:head、tail

       按列抽文件內容取:cut

       統計文本:wc

       整理文本:sort、uniq

       比較文本:diff、patch

一、查看文件內容

    1、cat:讀取一個或多個文件,然后復制到標準輸出。

    用法:cat  [options]  file1  [file2…]

     常用的options有:

       -n: 對顯示出的每一行進行編號

       -b: 對顯示出的非空行進行編號

       -s: 壓縮連續的空行成一行

       -A: 顯示所有的控制符,如:tab、換行、行結束符等。

      -E: 顯示行結束符。在linux,行結束符用$標識。

blob.png

壓縮連續的空行:

blob.png

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行的內容

blob.png

 

 2、查看文件的后n行:tail

  用法:tail [options] file

  常用options:

   -n #: 指定獲取后#行的內容。如果未指定,默認顯示后10行。

   -f: 跟蹤顯示文件新追加的內容,常用日志監控

   tail –f 可以簡寫為tailf

例2.1:顯示/etc/passwd后8行的內容:

blob.png

 

例2.2:追蹤查看/var/log/messages文件。

若只想查看新增的日志內容,可以指定:tailf –n 0 /var/log/messages

退出查看“ctrl + c“

blob.png

 

三、按列抽取文本: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。

blob.png

也可以不和管道配合,直接切割文件

blob.png

cut命令也常合其他系統管理命令配合使用,對其中的某個參數進行監控。

例: 取出磁盤空間使用率

blob.png 

tr –s “ “  “:”:將多余的空格合并為一個,并替換為“:“。

四、統計文本wc

法:wc [options]  file

常用options:

  -l :只統計行數

  -w:統計單詞數

例:統計/etc/passwd有多少行,有多少個單詞。

blob.png

五、整理文本

對文本進行排序,去掉重復的行等。

5.1、sort

  用法:sort [options] file

  常用options:

    -n :按數字進行排序。不指定默認按字符進行排序,數字也被當作字符

    -r:逆向排序。

    -u:刪除輸出中重復的行

    -t Delimiter:指定分隔符

    -k #:按分隔后的知道字段進行排序。

例:/etc/passwd按id進行排序

blob.png

/etc/passwd按id逆向排序

blob.png 

5.2、uniq:刪除重復的前后相接的行

  用法:unip [options] file

  常用options:

   -c :顯示每行重復出現的次數

   -d :僅顯示重復過的行

   -u :僅顯示不曾重復的行。

例:統計當前遠程登陸到本機的ip地址及其連接數

blob.png

六、文本比較:diff

  用法:diff  file1  file2 比較兩個文本之間的區別。

diff命令的輸出被保存在一種叫做“補丁”的文件中,配合patch命令對文件版本管理。

  常用options:

    -u 選項來輸出“統一的( unified)” diff格式文件,最適用于補丁文件。

   -b 選項來自動備份改變了的文件

例:復制/etc/fstab到當前文件,一名為fs1,一名為fs2,對fs2進行修改,在第一行添加“last modify“。之后通過補丁將fs1的內容更新為fs2的內容。

blob.png

 

文本處理三劍客grep、sed、awk放在后續的文章中介紹

原創文章,作者:M20-1鐘明波,如若轉載,請注明出處:http://www.www58058.com/29753

(0)
M20-1鐘明波M20-1鐘明波
上一篇 2016-08-07 22:07
下一篇 2016-08-07 22:07

相關推薦

  • Vim編輯工具用法的總結

    描述:    Vim是一款強大的命令行界面的文本編輯器,是vi的高級版本,先說下學習它的原因:  1,所有的UNIX Like 系統都會內置vi文本編輯器,其他的文本編輯器則不一定會存在;  2,很多軟件的編輯接口都會主動調用vi  3,vim具有程序編輯的能力,可以主動以字體顏色辨別語法的正確性,方便程序設…

    Linux干貨 2016-08-11
  • Linux的文本處理工具及grep正則表達式的使用

    文本處理工具及grep正則表達式的使用 本章節學習的內容: 1、各種文本工具來查看、分析、統計文本文件 2、grep正則表達式 3、擴展正則表達式 一、抽取文本的工具: 1、按文件內容:less和cat 2、按文件截?。篽ead和tail 3、按列抽取:cut 4、按關鍵字抽?。篻rep 二、文件查看命令:cat, tac,rev 1、命令cat: (1)文…

    Linux干貨 2016-08-05
  • Hadoop實戰實例

     Hadoop 是Google MapReduce的一個Java實現。MapReduce是一種簡化的分布式編程模式,讓程序自動分布到一個由普通機器組成的超大集群上并發執行。就如同java程序員可以不考慮內存泄露一樣, MapReduce的run-time系統會解決輸入數據的分布細節,跨越機器集群的程序執行調度,處理機器…

    Linux干貨 2015-04-13
  • 0803課堂練習與作業

    1、當用戶xiaoming對/testdir 目錄無執行權限時,意味著無法做哪些操作? 不能添加在/testdir中增刪改文件或目錄 2、當用戶xiaoqiang對/testdir 目錄無讀權限時,意味著無法做哪些操作? 不能查看文件中的文件列表 3、當用戶wangcai 對/testdir 目錄無寫權限時,該目錄下的只讀文件file1是否可修改和刪除? 不…

    Linux干貨 2016-08-04
  • 計劃任務&腳本進階練習

    1、每天的2點和12點整,將/etc備份至/testdir/backup目錄中,保存的文件名稱格式為“etcbak-yyyy-mm-dd-HH.tar.xz” mkdir /testdir/backup vim /root/bin/etcbak.sh tar cvf /testdir/backup/etcbak-`date “+%F-%H”`.tar.xz …

    Linux干貨 2017-03-26
  • 網絡基礎知識子網劃分

    一、某公司申請到一個C 類IP 地址,但要連接6 個的子公司,最大的一個子 公司有26 臺計算機,每個子公司在一個網段中,則子網掩碼應設為?  根據要劃分的子網數量來算子網掩碼的。2的M次方大于等于N。其中M是劃分子網時要借的位數。N是要劃分的子網數。 將需求代入公式,M=3,C類IP默認的掩碼為24位,再從主機位中借來3位,就是27位。二進制表示…

    Linux干貨 2016-09-06
欧美性久久久久