sed命令

一、Linux文本處理三劍客之 sed(Sed stream EDite)正則表達式

  做爲行編輯器,對文本進行編輯(以行爲單位編輯)編輯器

  注意:sed編輯文件,卻不改變原文件3d

二、Sed的工做原理:code

  指定一個文本文件,依次讀取文本文件中每行內容,讀取到模式空間中(PATTERN SPACE),在模式空間中進行文本匹配,對匹配後的文本內容進行修改(替換、刪除、打印、修改、保存)。blog

三、用法:ip

  sed [參數] 「sed本身獨立的用法格式語句」字符串

sed [OPTION]... {script-only-if-no-other-script} [input-file]...

四、常見選項input

   -n  不顯示默認輸出的內容it

  -r  指定使用擴展的正則表達式class

    匹配IP

       全部的\都不要

      |或者

  -e  script  for while if

  -f  指定腳本文件

  -l  指定文本換行的長度?

五、地址定界方式

(1)直接匹配數值

    sed -n ‘5-7’

(2)d~步長

(3)$ 指定行尾

(4)/正則/

  /正則1/,/正則2/

    sed -n `/k\{5,\}/,$p` abc

    sed -n `^(fd\)\+/.+2p` abc //正則寫在前面沒有問題,但寫在後面會出現問題

(5)0,addr

    addr能夠爲數字/$/正則表達式

    sed -n `0,/k\{5,\}/p` abc

(6)addr,+N

    配置addr行到,addr後N行

    sed -n `/fd/,+5p` abc

六、常見命令

  p  print 打印(默認在屏幕上顯示出來),建議和-n一塊兒使用;

  c  替換

    sed "/aaa/c \A" a

  d  刪除

    sed "/aaa/d" a

    sed "1,3d" a

  n  N讀取/添加 模式匹配到的下一行內容,再對其進行操做;

  w  保存文件內容到一個新的文件

    sed "/patthen/w 新的文件名"y原來的文件名

    sed "/k/w /tmp/aabbcc" abc

  *s*文本內容替換,默認替換模式空間匹配到的第一項;

    語法格式: s/pattern/字符串/       //中間的/能夠替換爲任意一個特殊字符

    常見命令:g   所有

         \1\2 h和正則表達式的分組相同,實現反向應用;(指定某一個匹配項進行修改替換)

         & d調用前面(pattern)匹配的內容

          sed "s/r..t/&er/g"w文件

相關文章
相關標籤/搜索