Linux 文本處理,文本工具,查看,分析,統計文本文件,grep,正則表達式

文本處理

各種文本工具,查看,分析,統計文本文件

grep

正則表達式

擴展正則表達式

sed

cat -n f1

加行號(空格行都計算)

QQ圖片20160805200612.png

cat -b f1

加行號(只計算有字符的行)

QQ圖片20160805200722.png

cat -ns f1

加行號(壓縮空行)

cat -v f1

能看windows文件的M`符號

QQ圖片20160805201201.png

cat -T f1

能夠顯示里面的tab空位,顯示為^I

QQ圖片20160805201509.png

cat -A f1

能夠顯示所有的=-vET

QQ圖片20160805201615.png

cat 命令是一個標準輸入到標準輸出

tac f1

將文本內容倒向顯示

QQ圖片20160805201718.png

rev f2

echo {1..10} >>f2

01 9 8 7 6 5 4 3 2 1 

將文本反向顯示(內容為字符顯示)

QQ圖片20160805202006.png

QQ圖片20160805202021.png

more 

    space空格一頁一頁翻

    q :退出

    回車翻一行

less 

    d:翻半屏

   / :文本搜索

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

head 頭

head -n 3

     -3 /var/log/messages   頭三行顯示

QQ圖片20160805202530.png

tail 后                     

tail -n 10 /var/log/messages  后10行的顯示

QQ圖片20160805202647.png

tail -f /var/log/messages 自動顯示更新的日志內容(保持顯示內容)

QQ圖片20160805203255.png

tail -n 0 -f /var/log/message & 

日志有新信息就顯示,沒新信息都不出現 (在后臺運行)

fg 1 

Ctrl +C (要切換回前臺在結束)

QQ圖片20160805210154.png

tail -c 10 f1

顯示后10個字符(包括空格,符號。)

QQ圖片20160805203413.png

按列抽取文本cut和合拼文件paste

 cut

     -d :指明分隔符,默認tab

     -f : 

         #:第#個字段

         #,#[,#]:離散的多個字段,例如1,3,6

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

        混合使用:1-3,7

     -c : 按字符切割

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

     cut

cut -d: -f1,3,7 passwd

取出用:分隔的1.3.7列取出成行

QQ圖片20160805203720.png

cut -c44-46 f1

取出字符第44到46列,取出顯示成行

QQ圖片20160805203904.png

ifonfig | head -2 |tail -1 |cut -d: -f2| cut -d" " -f1

QQ圖片20160805204247.png

paste 橫行合并ca

      -d 分隔符:指定分隔符

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

wc 文本數據統計

   wc + 文件

   wc +  +文件

        -l :行

        -c :多少個字節總數

        -m :計算字符總數

        -w :顯示單詞總數

QQ圖片20160805204337.png

sort  

    整理過文本顯示

    -r:執行反向(由上至下)整理

    -n:執行按數字大小整理

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

    -u:刪除多余的空行

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

    -k X :選項按照使用c字符分隔的X列來整理能夠使用多次

uniq 

    uniq f1

    相鄰的相同的刪去,不相鄰的不刪除

    -c :顯示所有行重復的次數

    -d :只顯示重復的

    -u :只顯示不重復的

sort f2 |uniq -c 

QQ圖片20160805204836.png

netstat -nt 

cut -d: -f1,3,7 /etc/passwd |sort -t: -k2 -n

QQ圖片20160805205107.png

netstat -nt |tr -s " " ":"|cut -d: -f6 |tail -n +3|sort -n |uniq -c

diff

     -u

diff f1 f2 -u > diff.log 對比f1 與f2 的不同賦予diff.log

rm -f f2

patch -b f1 diff.log   自動備份

patch 

     -b 自動備份改變了的文件

grep :文本過濾工具

    grep,egrep,fgrep(不支持正則表達式搜索)

sed: stream editor,文本編輯工具

awk:Linux 上實現gawk,文本報告生成器

grep 

    :作用文本搜索工具

ls -R 

grep root /etc /passwd /etc/shadow

    -v:不包括指定的 顯示出來

    -i: 忽略大小寫

    -n:顯示對應的行號

    -c:統計匹配的行數目

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

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

       echo $?

               0就成功了,1是不成功。

    -A:after,將指定的關鍵字后面N行顯示出來

    grep -nA3 root /etc/passwd

    -B:before,指定關鍵字前面N行顯示

    -C:前兩行,后兩行都顯示出來

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

    grep -e root -e bash /etc/passwd

    -w:整行匹配整個單詞

       指的是整個單詞搜索

    -E:使用ERE

    -F:等于使用fgrep 

正則表達式

REGEXP: 由一類特殊字符及文本字符所編寫的模式,其中有些字符(元字符)不表達字符字面意義,而表示控制或通配的功能

分兩類:

      基本正則表達式:BRE

      擴展正則表達式:ERE

             grep -E,egrep

正則表達式引擎:

    采用不同算法,檢查處理正則表達式的軟件模塊

    PCRE

元字符分類:字符匹配,匹配次數,位置錨定,分組

man 7 regex

     . : 匹配任意單個字符

         

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

     grep r[a-z]t /etc/passwd

QQ圖片20160805212723.png

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

     

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

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

        貪婪模式,盡可能長的匹配

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

     \?:匹配其前面的字符0或1次

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

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

\{m,n\}:匹配前面的字符最少m次,最多n次

 \{,n\}:匹配前面的字符最多n次

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

位置錨定:定位出現的位置

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

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

         grep -v ''

         ^PATTERN$:用于匹配整行

                   ^$:空行

                   ^[[:space:]]*$:空白行

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

         grep '\bro'f1

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

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

分組:\(\):將一個或多個字符捆綁在一起,當作一個整體進行處理

  如: \(root\)\+

     分組括號中的模式匹配到的內容會比正則表達式引擎記錄于內部的變量中,這些變量的命名方式為:\1,\2,\3,…

df |grep '/dve/sd'

nmap -sP -v 10.1.252.210/24 |grep -B1|grep -v

grep "\b[1-9][0-9][0-9]\b"

grep \(bash\+\(testbash\+\(basher\+\(nologin)*\)+ 

grep –color '^\<\(.*\)\>.*\b\1\b$' /etc/passwd

grep '^\(.*\).*/\1$' /etc/passwd

QQ圖片20160805214201.png

egrep 擴展的正則表達式

egrep = grep -E

       .任意次數

       []指定范圍的字符

       [^]不在指定范圍的字符

次數的匹配

       *:匹配前面字符任意次數

       ?:0或1次

       +:1次或多次

      {m}:匹配m次

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

位置錨定:

      ^:行首

      $:行尾

      \<,\b:首

      \>,\b:尾

分組:

     ()

     后向引用:\1,\2

或者:

     a|b

     C|cat: C或cat

     (C|c)at:Cat或cat

egrep '^(zczx|root)\b' /etc/passwd |cut -d: -f3,7

QQ圖片20160805214406.png

echo "/etc/isse" | egrep -o "[^/]+/?$"

                 | egrep -o "(/.*)"

QQ圖片20160805214710.png

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

(0)
swzczxswzczx
上一篇 2016-08-07 22:07
下一篇 2016-08-07 22:07

相關推薦

  • DNS服務基礎

    DNS服務:是一種工作在應用層的特定應用,也是.c/s架構模式的,DNS的是一種應用層協議,他的端口是UPD協議的53號端口,()根據應用場景不同也會用到tcp協議)這就意味著DNS是默認通過UDP協議進行通信的 我們訪問任何一個網站都是通過主機名的方式進行訪問的;例如www.baidu.com,這是個主機名.稱之為FQDN(完全限定域名) 常見的頂級域中的…

    Linux干貨 2016-11-07
  • Linux的用戶,組及文件權限管理

    Linux用戶與組的創建,刪除,屬性修改,文件權限管理

    Linux干貨 2018-02-24
  • CentOS 7, lamp (php-fpm);(Blog 15)

    要求:
    (1) 三者分離于三臺主機;
    (2) 一個虛擬主機用于提供phpMyAdmin;另一個虛擬主機用于提供wordpress;
    (3) xcache

    2017-12-20
  • 聯通電信雙鏈路內網VRRP+BFD&&PPTP+MYSQL+FreeRadius實現IDC堡壘機連接IDC機房

    一、具體需求與實現 1、多wan:兩條寬帶接入鏈路,使用VRRP+BFD技術,實現鏈路冗余; 2、IDC機房遠程管理和登錄限制:使用PPTP+freeRadius+mysql實現VPN,限制指定網段或IP進行撥號認證登錄IDC機房,并編寫腳本檢查非法用戶登錄IDC機房服務器情況; 3、內網VLAN劃分:利于安全管理、IP分流和帶寬限制; 4、內網監控:使用N…

    Linux干貨 2016-08-22
  • N26-第四周作業-邢巖

    馬哥門徒-N26-邢巖   精神練習需要深入認真的工作以及熱情的勁頭。當你開始練習,你是在掙扎、在反抗,你需要集中精力,然后慢慢進步。那么,我們就開始吧。   第一題,復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。   ~]# cp -r /et…

    Linux干貨 2017-02-15
  • Linux文件類型及顏色標識整理

    Linux文件類型及顏色標識整理 M21陸東貴 使用工具: ls命令     ls –l:以常格式顯示文件及目錄的詳細信息     例如:-rw-r–r–  1 root root       0 10月 …

    Linux干貨 2016-10-18
欧美性久久久久