文本處理相關工具

文本工具

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

 其中:

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

       文件文本截取:head和tail

       按列抽?。篶ut

       按關鍵字抽取:grep

下面一一介紹一下

查看文件內容工具:

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 16:13
下一篇 2016-08-05 16:13

相關推薦

  • N22-℡浮生.若夢 ╮第六周作業

    1、復制/etc/rc.d/rc.sysinit文件至/tmp目錄,將/tmp/rc.sysinit文件中的以至少一個空白字符開頭的行的行首加#; cp /etc/rc.sysinit /tmp/rc.sysinit vim/tmp/rc.sysinit :%s@^[[:space:]]\+@#&@g 2、復制/boot/grub…

    Linux干貨 2016-10-29
  • CentOS7下使用rmcli配置IP地址詳解及網絡連接狀態查看工具和進程管理工具的使用

    一、在CentOS7中推薦使用nmcli工具來管理網卡配置,nmcli是NetworkManager Command-Line Interface(網絡管理命令行接口)的簡稱,可以通過它以命令行的方式管理網卡。也可以使用nmtui管理工具,nmtui是NetworkManager Text-User Interface(網絡管理文本用戶接口)的簡稱,它提供的…

    Linux干貨 2016-09-07
  • 推薦-常用RAID級別詳解

    一、RAID是什么       RAID(Redundant Arrays of Indent Disks)的名稱是獨立磁盤冗余陣列,是一種通過將多塊硬盤按照某種特定的結構組織起來當做一塊硬盤來使用的技術,多塊硬盤不同的組織結構我們稱之為RAID的級別。而RAID技術的特性主要表現在兩個方面: (1)提高硬盤…

    Linux干貨 2016-03-27
  • 第五周著重練習擴展正則元字符及find命令

    1、顯示當前系統上root、fedora或user1用戶的默認shell; grep -E "^(root|hadoop|user1)\>" /etc/passwd |cut -d":" -f1,7 2、找出/etc/rc.d/init.d/functi…

    Linux干貨 2016-12-13
  • 8月20日程序包管理

    程序包管理 概述    API:Application Program Interface應用編程接口    ABI:Application Binary Interface應用二進制接口    Unix-like,  …

    Linux干貨 2016-08-21
  • LINUX下用戶管理命令簡述

    LINUX下用戶管理命令簡述 添加用戶并設置密碼 useradd [用戶名] 創建用戶 [root@localhost ~]# useradd jack [root@localhost ~]# cat /etc/shadow | grep jack jack:!!:17257:0:99999:7::: passwd [用戶名] 設置密碼 [root@loca…

    Linux干貨 2017-04-05
欧美性久久久久