8-4 文本處理工具

本節主要了解文本處理工具




文件查看命令:cat  tac  rev

    cat [OPTION]… [FILE]…

        -E:顯示行結束符$

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

        -A:顯示所有控制符

        -b:非空行編號

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

圖片1.png

tac:倒著顯示內容

rev:倒著顯示內容,同一行內也倒著

 

分頁查看文件:more

     more [OPTIONS…] FILE…

         -d:顯示翻頁及退出提示

  less :一頁一頁地查看文件或STDIN 輸出

查看時有用的命令包括:

       /文本  搜索 文本

       n/N:跳到下一個 or  上一個匹配

 less 命令是man命令使用的分頁器

 

顯示文本前或后行內容

 head [OPTION]… [FILE]…

     -c #:指定獲取前#字節

     -n #:指定獲取前#行

     -#:指定行數

圖片2.png

 tail [OPTION]… [FILE]…

      -c #:指定獲取后#字節

      -n #:指定獲取后#行

      -#:

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

圖片3.png

 

文本內容切割:cut  

    cut [OPTION]… [FILE]…

       -d delimiter:  指明分隔符

        -f fileds:指明需要取出的字段

            #:第#個字段

            #,#,# :離散的多個字段,例如1,2,3

            #-#:連續的多個字段,  例如1-6

            混合使用:1-3,7,9,10-13

            -c 按字符切割

            –output-delimiter=STRING 指定輸出分隔符

圖片4.png

 

 合并文件

      paste  合并兩個文件同行號的列到一行

      paste [OPTION]… [FILE]…

          -d:分隔符: 指定分隔符,默認用TAB

          -s:所有行合成一行顯示

圖片5.png

 

字符統計:wc

wc [OPTION]…[FILE]…

   -l:統計行數

   -w:統計單詞個數

   -c:統計字符個數

   -m:只計字符總數

圖片6.png

其中1是行數,2是單詞個數,7是字符數

 

 

文本排序:sort

  把整理過的文本顯示在STDOUT ,不改變原始文件

   sort [OPTION]… [FILE]…

    -r:逆序

    -n:以數字大小進行排序

    -f:忽略字符串中的字符大小寫

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

    -t c:使用c 做為字段界定符

    -k #:以指定字段為標準排序

圖片7.png

取第三列以數字大小排列

 

從輸入中刪除重復的前后相接的行:uniq

    uniq [OPTION] …[INPUT[OUTPUT]]

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

            -d:僅顯示重復的行

            -u:僅顯示不重復的行

 

grep

   文本過濾( 模式:pattern) 工具;grep, egrep, fgrep (不支持正則表達式)

   作用:文本搜索工具,根據用戶指定的“模式”對目標文本逐行進行匹配檢查;打印匹配到的行;

   模式:由正則表達式字符及文本字符所編寫的過濾條件

   grep [OPTIONS] PATTERN [FILE…]

   –color=auto:  對匹配到的文本著色顯示;

  -v:顯示不能夠被pattern 匹配到的行;

  -i:忽略字符大小寫

  -n:顯示匹配的行號

  -c:統計匹配的行數

  -o:僅顯示匹配到的字符串;

  -q:靜默模式,不輸出任何信息

  -A #after,匹配到的后#

  -B #before,匹配到的前#

  -C #context,匹配到的前后各#

  -e:實現多個選項間的邏輯or 關系

       grep  -e cat -e dogfile

  -w :整行匹配整個單詞

  -E :使用ERE,支持使用擴展的正則表達式

圖片8.png

 

元字符:

      字符匹配:

          . :匹配任意單個字符

          []:匹配指定范圍內的任意單個字符

          [^]:匹配指定范圍外的任意單個字符

               表達方法:

                   [:alnum:]:表示所有字母和數字

                   [:alpha:]:表示所有的字母(不區分大小寫)

                   [:digit:]:表示所有的數字

                   [:lower:]:表示所有的小寫字母

                   [:upper:]:表示所有的大寫字母

                   [:space:]:表示所有的空白符號

                   [:punct:]:表示所有的標點符號

      次數匹配:用在要指定次數的字符后面,用于指定前面的字符要出現的次數

          *:匹配前面的字符任意次,包括0次 次

              默認正則表達式是工作在貪婪模式下,盡可能長的匹配

          .* :任意長度的任意字符

          \? :匹配其前面的字符0 1次,即可有可無

          \+ :匹配其前面的字符至少1

          \{m\} :匹配前面的字符m

          \{m,n\} :匹配前面的字符至少m 次,至多n次(小于等于,大于等于)

          \{0,n\} :匹配前面的字符至多n

          \{m,\} :匹配前面的字符至少m

     位置錨定:對特定位置進行定位

         ^:行首錨定,用于模式的最左側

         $:行尾錨定,用于模式的最右側

         ^PATTERN$:用于模式匹配整行

             ^$:空行,不包含有空格的行

             ^[[:space:]]*$:空白行,包含有空格的行

          \< 或 或 \b:詞首錨定,用于單詞模式的左側

          \> 或 或 \b:詞尾錨定;用于單詞模式的右側

          \<PATTERN\>:匹配整個單詞

         分組:是指將一個或多個字符捆綁在一起,當做一個整體進行處理

               符號是: \(\):

                   如:\(xy\)*ab 表示xy這個整體可以出現無數次

圖片9.png

       查找出passwd文件中,r后跟任意小寫字母再跟t的字符

擴展正則表達式元字符:

     字符匹配:

         .:任意單個字符

         []:指定范圍內的單個字符

         [^]:不在指定范圍內的單個字符

次數匹配:

    *:任意次

    ?:0次或1

    +:至少1

    {m}:精確匹配m

    {m,n}:至少m次,至多n

    {m,}:至少m

    {0,n}:最多n

 分組:

     ():用括號括起來表示要引用的內容,不需要轉義

 或者:

      a|b:a或者b

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

(0)
DadiDadi
上一篇 2016-08-07
下一篇 2016-08-07

相關推薦

  • vim編輯器及練習題

    命令用法: vim [OPTION]… FILE…  +#: 打開文件后,直接讓光標處于第#行的行首                   &nbs…

    Linux干貨 2016-08-11
  • Linux程序包管理相關

    前言 首先說說一個軟件的誕生過程: 程序員用編程語言寫文本格式的源代碼,但是計算機只能讀懂二進制文件,那么就需要將源代碼轉換成二進制格式,這個過程稱為編譯。編譯用的工具稱為編譯器,編譯器有很多種,在Linux上常用gcc這個編譯器。利用編譯器,得到二進制格式的文件(二進制程序(Windows上.exe.msi,Linux.elf)、庫文件、配置文件、幫助文件…

    Linux干貨 2018-01-04
  • N21沉舟-第八周作業

    1、  請描述網橋、集線器、二層交換機、三層交換機、路由器的功能、使用場景與區別。 #網橋:鏈接層設備,基于MAC地址過濾。 #集線器:物理層設備,基本都屬于半雙工模式。集線器與網橋在現在的局域網中基本都不用了。 #二層交換機:工作在數據鏈路層,基本MAC轉發數據,功能齊全的可支持VLAN等功能。常見的有100/1000M、16口/24口/48口?!?/p>

    Linux干貨 2016-08-24
  • Windows和Linux關于一塊網卡綁定多個網絡地址的解決之道

    Windows和Linux關于一塊網卡綁定多個網絡地址的問題解決之道   在不同場合用不同ip地址訪問網絡,而且都是固定ip。是一件很頭疼的問題。不過,Windows和Linux系統都提供了解決方法。接下來我們先談Windows系統下操作,再說Linux如何操作。 一、Windows設置   1. 我以Windows7為例,首先鼠標左鍵點擊你電腦左下角有網絡…

    Linux干貨 2016-09-07
  • 分布式系統介紹及MogileFS安裝、基本配置

    分布式系統介紹及MogileFS安裝、基本配置 分布式 MogileFS 前言: 什么是分布式? 分布式存在的意義? 分布式的難點及CAP、BASE、2PC、X/Open XA介紹 分布式存儲和分布式文件系統: MogileFS實現原理: MogileFS編譯安裝和配置 總結 前言: 不知不覺中我們就進入大數據時代, 什么是大數據? 什么是分布式?…

    Linux干貨 2016-05-04
  • 學習宣言

    此刻打盹,你將做夢,此刻學習,你將圓夢! 為了財富自由,前進!

    Linux干貨 2016-12-28
欧美性久久久久