常用文本處理工具 及 正則表達式詳解

  >>>文本處理工具<<<

一:文本查看(cat、less、more、head、tail、cut、paste)

cat  (常用于顯示內容較少的文本)

功能:查看文件內容,創建文件,文件合并,追加文件內容

選項(options):

 ①查看文件內容:

 -A  = -vte  顯示文件所有內容(包括回車[$]和特殊字符)

常用文本處理工具 及 正則表達式詳解

 -n   顯示行編號,空白行也編號    常用文本處理工具 及 正則表達式詳解聯想:nl filename 也能顯示文本文件的行號偶

 -b   顯示行編號,但對空白行不編號

 -e/E   在輸出內容的每一行后加上$(換行符)符號

 -s    合并連續空白行  

 -t/T  顯示tab(^I)

 -v  顯示非打印字符串

 –version  顯示版本信息并退出     

 ②創建文件并寫入文件內容(與重定向>配合使用):

  語法:cat>filename<<endmark

  (filename  新創建的文件名

      endmark   結束標志,當輸入endmark時自動退出編輯)

    常用文本處理工具 及 正則表達式詳解

 ③文件合并(與重定向>配合使用)

 cat f1 f2>f3   將f1、f2文件內容寫入到f3中(覆蓋f3原有內容)

 cat f1 f2>>f3  將f1、f2文件內容寫入到f3中(保留f3原有內容)

 ④追加文件內容(與重定向>配合使用)

 cat>>filename<<endmark

more(常用于內容較多,需要分頁的文本文件)

1.功能:

  • 逐頁顯示文件內容
         space/f:顯示下一頁
         b(back):顯示上一頁
  • 啟動時就加載整個文件,并能夠搜索字符串和跳行
2.命令格式:
   more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file … ]
3.options:
  +n      從笫n行開始顯示

  -n       定義屏幕大小為n行

  +/pattern 在每個檔案顯示前搜尋該字串(pattern),然后從該字串前兩行之后開始顯示  

  -c       從頂部清屏,然后顯示
  -d       提示“Press space to continue,’q’ to quit(按空格鍵繼續,按q鍵退出)”,  并禁用響鈴功能
  -l        忽略Ctrl+l(換頁)字符

  -p       通過清除窗口而不是滾屏來對文件進行換頁,與-c選項相似

  -s       把連續的多個空行顯示為一行
  -u       把文件內容中的下劃線去掉
 4.常用快捷方式:
  Enter :   向下n行,需要定義。默認為1行

  Ctrl+F :  向下滾動一屏

  空格鍵:  向下滾動一屏
  Ctrl+B:  返回上一屏
  = :      輸出當前行的行號
  :f     輸出文件名和當前行的行號

  V      調用vi編輯器

  !  命令    調用Shell,并執行命令 
 q       退出more

less(man幫助文檔使用)
1.功能:
  分頁顯示文件內容,但在查看文件之前不會加載整個文件(不同于more)
2.命令格式:
  less [參數]  filename 
3.options:
  b <緩沖區大小> 設置緩沖區的大小

 -e  當文件顯示結束后,自動離開

-f  強迫打開特殊文件,例如外圍設備代號、目錄和二進制文件

-g  只標志最后搜索的關鍵詞

-i  忽略搜索時的大小寫

-m  顯示類似more命令的百分比

-N  顯示每行的行號

-o <文件名> 將less 輸出的內容在指定文件中保存起來

-Q  不使用警告音

-s  顯示連續空行為一行

-S  行過長時間將超出部分舍棄

-x <數字> 將“tab”鍵顯示為規定的數字空格
4.常用快捷鍵:
  /string:向下搜索“字符串”的功能
 ?string:向上搜索“字符串”的功能

 n:重復前一個搜索(與 / 或 ? 有關)

 N:反向重復前一個搜索(與 / 或 ? 有關)

 b  向后翻一頁

 d  向后翻半頁

 h  顯示幫助界面

 Q  退出less 命令

 u  向前滾動半頁
 y  向前滾動一行
 space鍵:滾動一行
 Enter鍵: 滾動一頁
 [pagedown]: 向下翻動一頁
 [pageup]:   向上翻動一頁

head

-n  行號 /   -行號   顯示前n行

-c  以字節為匹配單位,顯示前n個字節 

tail

-n  行號 /  -行號   顯示后幾行

-c  字節數             顯示后n個字節

-f                          動態跟蹤顯示文本增加的內容(常用于日志監控)

日志監控用法:

常用文本處理工具 及 正則表達式詳解追加信息到file1文件中

常用文本處理工具 及 正則表達式詳解再打開一個終端,利用 tail -f  file1 來實時追蹤file1的變化

cut(常與tr一起連用)

-d 指定分隔符

-f 選取第幾列:

     截取某行:cut -fn

     截取連續幾行:cut -fm-n

     同時截取不連續與連續行:cut -fm-n,j(注意:用,隔開)

–output-delimiter 指定輸出符

     eg: cut -d: -f1,3 –output-delimiter=’|’ /etc/passwd   將原有:替換成 |

            常用文本處理工具 及 正則表達式詳解=

paste 合并文件內容

paste file1 file2

-d 指定分隔符(默認到TAB)

-s 所有行合并成一行顯示(合并單個文件)

常用文本處理工具 及 正則表達式詳解

二:文本分析工具(wc、sort、diff與patch)

WC (文本數據統計工具)

1.功能:

計算單詞總數、行總數、字節總數、字符總數

※  wc  file    圖二所示結果依次是:  行數  單詞數   字節數($、^I等其他隱藏字符也算一個字節偶)

常用文本處理工具 及 正則表達式詳解  圖一

常用文本處理工具 及 正則表達式詳解     圖

2.options:

  -l   總行數

  -w  單詞總數

  -c   字節總數

  -m  字符總數

sort(默認升序)

1.options:

   -r 執行反方向(由上至下)整理 (降序)

    -n 執行按數字大小整理

    -f 選項忽略(fold)字符串中的字符大小寫

    -u (unique) 刪除輸出中的重復行

    -t c    選項使用c做為字段界定符(與  -k  搭配使用效果更佳常用文本處理工具 及 正則表達式詳解

    -k X   選項按照使用c字符分隔的X列來整理能夠使用多次(與 -t 搭配使用效果更佳常用文本處理工具 及 正則表達式詳解

2.常見用法:

    ①  sort  -t符號m   -kn  -n     以符號m為間隔符,取第n列按數字大小對文本進行排序

    sort -t: -k3 -n  /etc/passwd      根據用戶UID大小對用戶進行默認排序

    ②與uniq搭配使用,對有分散的重復行文本內容排序常用文本處理工具 及 正則表達式詳解,例題:

       常用文本處理工具 及 正則表達式詳解請對將此字符串:welcome to magedu linux 中的每個字符
去重并排序,重復次數多的排到前面

           解題思路: 輸出welcome to magedu linux–>利用grep豎向輸出字母–>sort對字母進行排序(默認升序)–> uniq -c 計算每個連續重復行出現次數(謹記:必須先用sort將分散的重復行變為連續行才能用 uniq -c 進行統計)–>再次利用  sort -rn  將其按照數字大小對其降序排列

                echo welcome to magedu linux| grep -o [[:alpha:]]| sort|uniq -c|sort -rn

               常用文本處理工具 及 正則表達式詳解

uniq  (將連續重復行顯示為一行)

1.options:

-c  將連續行顯示為一行,并顯示連續行出現的次數(如下圖)

常用文本處理工具 及 正則表達式詳解

-d  僅顯示連續重復行

-u  僅顯示不連續重復的行

2.常見用法:

與sort配合使用(見sort常見用法②例題)

diff與patch(生成補丁文件并為原始文件打補丁)

※diff  (比較兩文件不同)

常用文本處理工具 及 正則表達式詳解

options:

  -u  輸出統一的diff文件(這就是我們常說的補丁文件了?。。?!常用文本處理工具 及 正則表達式詳解

※patch(為原始文件打補丁  謹慎使用

用法:

     patch  -b  原始文件  補丁文件       給文件打補丁

       常用文本處理工具 及 正則表達式詳解

 


       >>>正則表達式<<<

一:什么是正則表達式?

  正則表達式是通過一些特殊字符的排列,用以查找、替換、刪除一行或多行文字字符串

二:基礎正則表達式(grep)

 1、grep    基本正則表達式

①功能:

    顯示匹配信息所在行     

②options:

-o     只顯示匹配到的行

eg:

-v     只顯示未匹配到的行

-e     或

eg:grep -e  “cat”  -e  “dog”  file1   顯示含有cat或dog的行

-w    匹配整個單詞(精確查找)

-c     統計匹配的行數

-n     顯示匹配結果的行號

-q     靜默模式,不顯示匹配結果

-A n  同時顯示匹配到的行與它的后n行

-B n  同時顯示匹配到的行與它的前n行

-C n  同時顯示匹配到的行與它的前后n行

-E     =egrep

-F     =fgrep

-i      忽略字符大小寫

–color=auto

 2、正則表達式中元字符分類

  •  字符匹配

    常用文本處理工具 及 正則表達式詳解

  •  匹配次數

   *

  匹配字符任意次(包括0次,盡可能長的匹配)

   .*

  任意長度的任意字符

   \?

  01

    \+

  >=1

    \{n\}

  匹配n

   \{m,n\}

  匹配m-n

   \{,n\}

  <=n

   \{m,\}

  >=m

  •  位置錨定

   ^   行首錨定

   $    行尾錨定

   \<   詞首錨定

   \>   詞尾錨定

   \< \>

  •  分組

    ① \(string\)  同時匹配多個字符

    ② 后向引用: \1   表示從左側起第一個左括號以及與之匹配右括號之間的模式所匹配到的字符

     ③  \|     邏輯 “或”    

 3、egrep  拓展的正則表達式

  

字符匹配

 .         任意單個字符  

 []        指定單個字符

 [^]       補集

次數匹配

 {n}       n

 {m,n}     m-n

 *       0,+

 ?        01

 +        大于等于1

位置錨定

 ^        行首

 $        行尾

 \<       詞首

 \>       詞尾

分組

 ()        

 \1,\2,\3…….  后向引用前面所匹配的字符串

 a|b      ab

 C|cat     Ccat

 (c|C)at    Catcat

         

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

(0)
yunyunyuyunyunyu
上一篇 2017-07-30 21:38
下一篇 2017-07-30 22:12

相關推薦

  • bash的基礎特性[更新中]

    2、bash的工作特性之命令執行狀態返回值和命令行展開所涉及的內容及其示例演示。
    3、請使用命令行展開功能來完成以下練習:
    (1)、創建/tmp目錄下的:a_c, a_d, b_c, b_d
    (2)、創建/tmp/mylinux目錄下的:
    mylinux/
    ├── bin
    ├── boot
    │?? └── grub
    ├── dev
    ├── etc
    │?? ├── rc.d
    │?? │?? └── init.d
    │?? └── sysconfig
    │?? └── network-scripts
    ├── lib
    │?? └── modules
    ├── lib64
    ├── proc
    ├── sbin
    ├── sys
    ├── tmp
    ├── usr
    │?? └── local
    │?? ├── bin
    │?? └── sbin
    └── var
    ├── lock
    ├── log
    └── run
    5、如何定義一個命令的別名,如何在命令中引用另一個命令的執行結果?
    6、顯示/var目錄下所有以l開頭,以一個小寫字母結尾,且中間至少出現一位數字(可以有其它字符)的文件或目錄。
    7、顯示/etc目錄下,以任意一個數字開頭,且以非數字結尾的文件或目錄。
    8、顯示/etc目錄下,以非字母開頭,后面跟了一個字母以及其它任意長度任意字符的文件或目錄。
    9、在/tmp目錄下創建以tfile開頭,后跟當前日期和時間的文件,文件名形如:tfile-2016-05-27-09-32-22。
    10、復制/etc目錄下所有以p開頭,以非數字結尾的文件或目錄到/tmp/mytest1目錄中。
    11、復制/etc目錄下所有以.d結尾的文件或目錄至/tmp/mytest2目錄中。
    12、復制/etc/目錄下所有以l或m或n開頭,以.conf結尾的文件至/tmp/mytest3目錄中。

    2018-03-17
  • linux啟動流程

    linux組成 Linux: kernel+rootfskernel: 進程管理、內存管理、網絡管理、驅動程序、文件系統、安全功能 rootfs:程序和glibc庫:函數集合, function, 調用接口(頭文件負責描述)過程調用:procedure,無返回值函數調用:function程序:二進制執行文件 內核設計流派:單內核(monolithic ker…

    2018-01-01
  • 大數據計算:如何僅用1.5KB內存為十億對象計數

    Big Data Counting: How To Count A Billion Distinct Objects Using Only 1.5K This is a guest post by Matt Abrams (@abramsm), from Clearspring, discussing how they are able to accurat…

    Linux干貨 2015-04-08
  • if、case 語法

    1. 條件選擇 if 語句         選擇執行:             ? 單分支      &nbs…

    Linux干貨 2016-08-22
  • locate、find命令使用總結

    一、簡介    在linux系統中存在"一切皆文件"的說法,這就足以說明文件的重要性,因此查找文件也是我們必須要掌握的技能。這時候熟練使用locate、find命令也就顯得至關重要。尤其是find命令常用于日常工作中如安裝完某個軟件之后要查看這些軟件的安裝配置路徑,或是需要按指定條件直接查找我們需要操作的文件。因此更需…

    Linux干貨 2015-08-31
  • 第六周總結

    請詳細總結vim編輯器的使用并完成以下練習題 vim: 模塊化的編輯器   基本模式: 編輯模式,命令模式 輸入模式 末行模式: 打開文件: # vim [options] [file..] +#:打開文件后,直接讓光標處于第#行的行首; +/PATTERN:打開文件后,直接讓光標處于第一個被PATTERN匹配到的行的行首; 模式轉換: 編輯模式:…

    Linux干貨 2017-08-07
欧美性久久久久