Linux正則表達式與文本處理命令

一、正則表達式

正則表達式:是一類字符所書寫出的模式(pattern)

    元字符:類似通配符,不表示字符本身的意義,用於額外功能性的描述

基本正則表達式(BRE)和擴展正則表達式(ERE)

基本正則元字符:

字符匹配:
     . : 任意單個字符
    [] : 指定範圍內的任意單個字符
    [^] : 指定範圍外的任意單個字符
    [0-9],[:digit:] : 數字
    [a-z],[:lower:] : 小寫字母
    [A-Z],[:upper:] : 大寫字母
    [:alpha:] : 大小寫字母
    [:alnum:] : 字母+數字
    [:space:] : 空格
    [:putct:] : 標點符號
    
匹配次數:
    * : 匹配前一個字符的任意次(包括0次)
    .* : 匹配任意長度的任意次
    \? : 0次或1次
    \+ : 至少1次
    \{n\} : n次
    \{n,\} : 至少n次
    \{,n\} : 至多n次
    \{n,x\} : 至少n次至多x次
    
位置錨定:
    ^ : 錨定行首
    $ : 錨定行尾
    ^$ : 表示空行
        ^[[:space:]]*$ : 空白行
    \<,\b : 錨定詞首
    \>,\b : 錨定詞尾
    
分組:
    \(\) 
    引用:
        \1:後向引用,引用第一個括號左匹配到的字符串。

擴展正則表達式:

字符匹配:
    . : 任意單個字符
    [] : 指定範圍內的任意單個字符
    [^] : 指定範圍外的任意單個字符
匹配次數:
    * : 匹配前一個字符的任意次(包括0次)
    .* : 匹配任意長度的任意次
    ? : 0次或1次
    + : 至少1次
    {n} : n次
    {n,}: 至少n次
    {,n} : 至多n次
    {n,x} : 至少n次至多x次
位置錨定:
    ^ : 錨定行首
    $ : 錨定行尾
    ^$ : 表示空行
        ^[[:space:]]*$ : 空白行
    \<,\b : 錨定詞首
    \>,\b : 錨定詞尾
分組:
    () 
    引用:
        \1:後向引用,引用第一個括號左匹配到的字符串。
或:
   ac|bc : ac或者bc

二、文本處理命令

grep : 文本過濾

grep [option] file
選項:
    -v : 取反
    -i : 忽略大小寫
    -n : 顯示匹配行的行號
    -c : 統計匹配的行數
    -q : 靜默模式,不輸出任何信息
    -o : 僅顯示匹配到的字符串
    -A n : 匹配搜索到的字符串的後n行
    -B n :匹配搜索到的字符串的前n行
    -C n :匹配搜索到的字符串的前後n行
    -e :實現多個選項間的邏輯or關係
        grep -e 'str0' -e 'str1' file
    -w : 匹配整個單詞
    -E : 支持擴展正則表達式

wc : 統計文件

wc [option] file
選項:
    -l :行數
    -w :單詞數
    -c :字節數
    -m :字符數
    -L :最長行的字符數

sort : 排序

選項
    -t : 指定分隔符
    -k : 指定以第N列進行排序
    -n : 以數字大小排序
    -r : 倒序排序
    -u : 去除重複行

uniq :去除文件中相鄰的重複行

選項:
    -c :顯示每行重複出現的次數
    -d : 僅顯示重複過的行
    -u : 僅顯示不曾重複的行
cat : 查看文件內容
cat [options] file
選項:
    -n : 顯示行號
    -b : 顯示行號,空行不顯示行號
    -E : 顯示結束符 $
    -A : 顯示所有特殊符號
    -s : 將連續空行壓縮成一行
    
tac :反向顯示	


rev : 反向顯示字符串,abc > cba


nl  : 顯示行號,空行不添加行號

 
more : 分頁顯示,不能向前翻頁
more [option] file
選項:
    +n : 從第n行開始顯示
    -n : 每次顯示n行數據
    -c :清屏再現實
    -p : 換頁時清屏

        
less : 分頁顯示,不自動退出
 -N : 顯示行號
    查看文件時:	
    /str : 向下搜索字符串
    ?str : 向上搜索字符串

        
head : 顯示文件的前幾行
    -c n : 取字符的前n個

        
tail : 顯示文件的後幾行
    -f : 實時顯示
    -F : 跟蹤文件名

        
tailf :類似tail -f,當文件不增長時不訪問文件,減少磁盤I/O


cut:顯示行中的指定部分,刪除文件中指定字段。
    -d : 指定分隔符
    -f : 與-d一起使用,顯示第n列
    -c : 按字符切割
    
paste :合併兩個文件相同行號的行到一行
    -d :指定分隔符,默認用TAB
    -s :所有行合併成一行顯示






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章