文本處理相關工具

文本工具

      操作系統中,文本的處理這一操作,比如操作一些內容,查看一些內容等等這些東西在linux中都得借助工具來完成對文本的操作。下面來說說對文本處理的工具;

 其中:

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

       文件文本截?。篽ead和tail

       按列抽?。篶ut

       按關鍵字抽?。篻rep

下面一一介紹一下

查看文件內容工具:

cat :查看文件內容并打印到屏幕上(默認動作) 

              當然我們可以使用管道或者輸出重定向將默認輸出機制更改    

選項及含義: 

-A:查看文件內容中的隱藏字符,如linux中的換行符" $ "
    [root@localhost testdir]# cat -A cat.txt 
    aaaaaaaa$
    bbbbbbbb$   //$為linux中的換行符
-n:顯示文件內容時輸出到屏幕加行號
    [root@localhost testdir]# cat -n cat.txt 
    1 aaaaaaaa
    2 bbbbbbbb     //為內容添加行號
-s:連續的空行壓縮成一行
    [root@localhost testdir]# cat cat.txt 
    aaaaaaaa
    
    
    
    bbbbbbbb    //文件中空行很多
    [root@localhost testdir]# cat -s cat.txt 
    aaaaaaaa
    
    bbbbbbbb  //添加s選項連續的空行則被壓縮成一行

cat還有個雙胞胎兄弟,那兄弟有點叛逆,cat為正常順序顯示,而他的兄弟則是倒序顯示其文件中的內容,那兄弟則是` tac` 命令.可以去嘗試一下

more、less分頁顯示文件內容

查看文件時如果內容過于多而使用cat查看的話會屏幕會一掃而過,more和less則是用來避免這種情況的。但對于more和less則不能對顯示出來的文件內容進行更改等操作。

more操作方法

      space(空格鍵):往下翻頁

      enter(回車鍵):一行一行往下翻

less:分頁查看文件 

      space(空格鍵):往下翻頁

      enter(回車鍵):一行一行往下翻

      /:往下搜索字符串

在查看是直接鍵入此符號,在輸出需要查找的字符,使用n/N進行上下查找

      ?:往上搜索字符串

在查看是直接鍵入此符號,在輸出需要查找的字符,使用n/N進行上下查找

      n:使用/或?查找字符串是向上或向下依次查看

      N:使用/或?查找字符串是向上或向下依次查看

more和less的區別:

       more只能往下查看,不能回到首行重新查看,內容查看到底部是自動退出

       less則能上下翻動和查找字符串 ,退出需按‘ q ’鍵

文件文本截?。?/p>

       能對文件中的文本信息指定顯示行

head:查看文件內容(截取首行往下的行數),默認不指定行數顯示后10行

-n<數字>:指定顯示內容的前幾行;
    head  -n  num(要顯示前幾行) 文件(也可以不要-n選項,直接head -num  文件,即可)
        [root@localhost testdir]# head -n 2 /etc/passwd
        root:x:0:0:root:/root:/bin/bash
        bin:x:1:1:bin:/bin:/sbin/nologin
        [root@localhost testdir]# head -2 /etc/passwd
        root:x:0:0:root:/root:/bin/bash
        bin:x:1:1:bin:/bin:/sbin/nologin    //兩種用法是一個效果
-c<字符數>:指定顯示首行的第幾個字符;
       [root@localhost testdir]# head -c 10 /etc/passwd 
        root:x:0:0[root@localhost testdir]#  
         //截取文件中首行的10個字符,這里因為我們截取的前面的內容,而沒有換行符產生的效果。

tail:查看文件內容(截取文件倒數的第幾行),默認不指定行數顯示后10行

用法則和head差不多,只不過是前或后的區別

其中tail -f 選項可以顯示文件不退出,等待用戶輸入內容顯示,

tail  -n0  -f  tail.txt &    

            //顯示tail.txt文件倒數第0行,使用-f選項退出,等待其他用戶輸入內容到其內,并自動打印添加的內容到屏幕,“ & ”,此為后臺執行命令,具體什么原理我也不太懂。 

按列截取文件內容

cut:截取文件內容中指定的列的內容

    cut [option]…  [file]…

-d: 以給定在-d選項后面的字符為分割符從而截取文件內容

     直接在-d后輸入要用于分割的字符

-f:顯示給定在-f選項后的內容

      三種使用方式

           1.#:直接指定單個字段(如:3則表示為第三段)

    2.#-#:指定連續的字段(如:1-3則表示為1到3的字段)

3.#,#:  指定離散的字段(如:1,3,5,則表示分別的1和3和5個字段)

例:

[root@localhost testdir]# cut -d: -f1,3,5 /etc/passwd
root:0:root      //-d后跟分割符,用于后面指定要截取第幾段的參照物
bin:1:bin
daemon:2:daemon   //顯示passwd文件中的以:號為分割的第1段,第3段,第5段
                
-c:顯示給定的數字范圍內的字符
   [root@localhost testdir]# cut -c 1-10 /etc/passwd
    root:x:0:0       // 截取passwd文件中第1個字符到第10個字符的內容
    bin:x:1:1:   
                               
--output-delimiter=STRING    
     將切出來的內容中的分割符更改為指定的分割符
    [root@localhost testdir]# cut -d: -f1,3 --output-delimiter=* /etc/passwd
     root*0
     bin*1     
//切掉第1和第3字段,其默認的分割符為冒號“*”使用此命令將原默認分割符更改為指定的分割符“ * ”

分析文本工具:

對文件進行分析查看其數據屬性變化

文本數據統計: wc

整理文本: sort

比較文件: diff和patch

   

文本統計工具

wc:word count 單詞統計

  不加選項統計文件的默認參數信息(行數、單詞數、字節、文件名)

    wc [option]… [file]…

-l: 統計文本中的行數
    [root@localhost testdir]# wc -l less.txt 
    107 less.txt
    
-w:統計文本中的單詞數
    [root@localhost testdir]# wc -w less.txt
    80 less.txt
    
-c:統計文件字節數
    [root@localhost testdir]# wc -c less.txt
    255 less.txt
    
-L:統計文件中內容最多的一行包含多少個字符 
      [root@localhost testdir]# wc -L less.txt
      4 less.txt

在命令行中直接輸入wc命令,則會在命令中進入編輯默認,在內輸入內容之后按 ^d 退出,wc會自動計算其行數、單詞數、字節

文本排序工具

sort:文本排序

    對文件內容進行排序,而后打印到屏幕

sort [option]…  [file]…

      -t:指定分割符進行排序,配合其他選項使用

      -k:指定用于排序的字段

      -n:基于數值大小進行排序而非字符順序

      -r:逆序排序

      -f: 忽略字符大小寫

      -u:連續重復的內容只顯示一個

:1.使用passwd文件的以冒號“ :”分割的第三個字段進行數值排序

[root@localhost testdir]# sort -t: -k 3 -n /etc/passwd 
root:x:0:0:root:/root:/bin/bash     
  //-t :指定分隔符為冒號“ :”  ;-k:指定以第三個字段進行排序;-n:進行數值從小到大排序
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
       ............

    2.使用passwd文件的以冒號“ :”分割的第三個字段進行數值大小的倒序顯示

[root@localhost testdir]# sort -t: -k 3 -nr /etc/passwd      //-r 則為倒序顯示
nfsnobody:x:65534:65534:Anonymous NFS User:/var/lib/nfs:/sbin/nologin
wang:x:508:508::/home/wang:/bin/bash
nologin:x:507:507::/home/nologin:/sbin/nologin
testbash:x:506:506::/home/testbash:/sbin/nologin
       ............

Uniq:唯一,其含義為刪除重復

     -c:顯示文件中重復行的次數

[root@localhost testdir]# uniq -c cat.txt   
      2 aaaaaaaa  
      2 bbbbbbbb
      1 cccccccc
      2 
      1 dddddddd
      2 
      2 eeeeeeec

     -u:僅顯示不重復的行

[root@localhost testdir]# uniq -u cat.txt 
cccccccc
dddddddd

     -d:僅顯示重復的行

[root@localhost testdir]# uniq -d cat.txt 
aaaaaaaa
bbbbbbbb
                  //此處兩個空行為隔開的連個重復的空行
eeeeeeec

文件比較

diff:比較兩個文件之間的區別

           diff命令在最簡單的情況下,比較給定的兩個文件的不同;diff命令是以逐行的方式,比較文本文件的異同處。

     diff [OPTION]… FILES

-u:顯示兩個文件詳細的不同信息

    使用diff不加選項直接對比文件將不同之處打印到屏幕

例:1.比較兩個文件的不同之處,不加選項

[root@localhost testdir]# diff less.txt less2.txt 
2d1
< bbbb    //此為兩個文件中不同之處的內容

2.比較兩個文件顯示出詳細不同信息

[root@localhost testdir]# diff -u  less.txt less2.txt 
--- less.txt2016-07-26 01:58:11.914942576 +0800
+++ less2.txt2016-07-26 01:57:55.244946816 +0800
@@ -1,2 +1 @@
 aaaa
-bbbb       //此為兩個文件不同的詳細信息,將第二個文件刪此行則相同

patch:向文件打補丁

在比較出來的不同點保存到另一個文件中,如果誤刪用于比較的其中一個文件,可以用命令恢復誤刪的文件,用其中一個文件將另一個文件恢復

     -b:將打完補丁的文件自動備份,名稱默認為原文件的后面加上.orig

兩個文件,比較出不同之處之后將信息保存了,然后原用于比較的文件被誤刪,現用patch命令將其恢復
1.diff -u file1 file2 >file.patch  //將文件1和文件2比較出來的詳細信息保存到file.patch中
2.rm -f  file2                     //刪除文件2
3.patch -b file1 file.patch      
  //用文件1和比較出來的結果文件進行融合匹配,系統自動保存為file1.orig,此文件內容將和原有內容一樣。

原創文章,作者:Lii,如若轉載,請注明出處:http://www.www58058.com/29263

(0)
LiiLii
上一篇 2016-08-05
下一篇 2016-08-05

相關推薦

  • egrep及文本處理工具十三道實例

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。 2、編輯/etc/group文件,添加組hadoop。 3、手動編輯/etc/passwd文件新增一行,添加用戶hadoop,其基本組ID為hadoop組的id號;其家目錄為/home/hadoop。 4、復制/etc/sk…

    2018-03-20
  • Linux運維利器之ClusterShell

    Via:http://blogread.cn/it/article/4573?f=wb 如果你有若干臺數據庫服務器,突然你想知道它們當前的即時負載情況,你會怎么辦?挨個登錄上去uptime一下?感覺有點傻,寫個shell?浪費時間,直接用ClusterShell吧! ClusterShell的安裝與配置     Clu…

    Linux干貨 2015-05-12
  • 關于綁定與不綁定CPU的對比

        此文嚴格意義上說,我沒有很大的把握,其中關于CPU調度域的概念現在還有些混淆,但還是發出來,希望能做點鋪路的貢獻吧。    另外CPU調度域的原理我沒辦法自己寫,能力尚淺, 只能將IBM知識庫 和 另一位博主的文章摘錄如下,并添加了些幫助理解的圖片,希望能幫助到初學者。 …

    Linux干貨 2016-05-03
  • Linux部分命令及通配符用法

    pwd: 顯示工作目錄 cd -: 在上一次所在目錄與當前目錄之間來回切換 cd: 切換回家目錄 cat:  文本查看工具 n:給顯示的文本行編號 -E:顯示行結束符$ passwd 修改用戶的密碼 which 查看系統命令所對應的路徑 df 查看系統分區 runlevel 查看系統運行級別  (共有6個級別) Tty…

    2017-03-28
  • sed工具 介紹

    sed工具 地址定界 不給地址:對全文進行處理 單地址: #:指定行 /pattern/:被此處模式所能夠匹配到的每一行 地址范圍: #,# #,+# /pat1/,/pat2/ #,/pat1/ ~:步進 1~2 奇樹行 2~2 偶數行 cat -n passwd >passwd2 新建文件 sep -n ‘/^h//^s/’…

    Linux干貨 2017-05-31
  • 1.初識linux

    1.計算機組成 計算機五大部件:運算器、控制器、存儲器、輸入設備、輸出設備。對應實際情況大致如下: CPU CPU(Central Processing Unit)主要包含運算器、控制器;也包含寄存器、緩存用于輔助: CPU在同一時間能并行處理的二進制數的位數稱為CPU字長。字長由CPU對外數據通路的數據總線條數決定。 運算器 運算器也稱…

    Linux干貨 2016-08-22
欧美性久久久久