国产宅男网站在线|亚洲A级性爱免费视频|亚洲中精品级在线|午夜福利AA毛

  • <dd id="gf5jf"><th id="gf5jf"></th></dd>

    <cite id="gf5jf"><label id="gf5jf"></label></cite>
  • <div id="gf5jf"><listing id="gf5jf"></listing></div>
    學習啦 > 學習電腦 > 操作系統(tǒng) > Linux教程 > linux shell的sed命令詳解

    linux shell的sed命令詳解

    時間: 佳洲1085 分享

    linux shell的sed命令詳解

      linux shell命令下的sed命令其實就是一個功能強大的編輯器工具,下面由學習啦小編為大家整理了linux shell之sed命令的相關(guān)知識,希望對大家有幫助!

      linux shell之sed命令詳解

      說明:

      sed是stream editor(流編輯器)的縮寫。它能夠完美匹配正則表達式。sed和awk是文件編輯最重要的兩個命令了。尤其涉及到了很多正則表達式的問題,筆者不敢也有點犯怵,試著寫寫。

      linux shell之sed命令實例

      1.替換文件中的字符串

      $sed -i 's/text/replace/g' file

      #如果不加g結(jié)尾,則替換每一行的第一個

      #如果只是打印,去掉-i

      2.忽略前N處匹配,從N+1出開始替換

      $sed -i 's/text/replace/2g' file

      #在g前面加入數(shù)字N

      3.移除空白符

      $sed '/^$/d' file

      4.標記已匹配的內(nèi)容

      $echo this is an example | sed 's:\w\+:/[&]:g'

      [this] [is] [an] [example]

      #冒號是定界符,只要合適,定界符可以是任意的

      5.子串匹配

      $echo this is digit 7 in a number | sed 's:digit \(0-9\): class="main">

    學習啦 > 學習電腦 > 操作系統(tǒng) > Linux教程 > linux shell的sed命令詳解

    linux shell的sed命令詳解

    時間: 佳洲1085 分享

      #輸出:this is 7 in a number

      #學過正則表達式的人,都理解group的概念,()里的內(nèi)容是第一組,所以只打印了7

      6.引用

      $text=hello

      $echo hello world | sed "s/$text/HELLO"

      #輸出HELLO world

      #可能有人注意用雙引號,是因為單引號會把$text當做一個字符串,而不是表達式。

      7.刪除

      $sed '2d' file #刪除第二行

      $sed '2,$d' file #刪除2-最后一行

      $sed '$d' file #刪除最后一行

      解讀—help

      用法: sed [選項]... {腳本(如果沒有其他腳本)} [輸入文件]...

      -n, --quiet, --silent

      取消自動打印模式空間

      -e 腳本, --expression=腳本

      添加“腳本”到程序的運行列表

      -f 腳本文件, --file=腳本文件

      添加“腳本文件”到程序的運行列表

      --follow-symlinks

      直接修改文件時跟隨軟鏈接

      -i[擴展名], --in-place[=擴展名]

      直接修改文件(如果指定擴展名就備份文件)

      -l N, --line-length=N

      指定“l”命令的換行期望長度

      --posix

      關(guān)閉所有 GNU 擴展

      -r, --regexp-extended

      在腳本中使用擴展正則表達式

      -s, --separate

      將輸入文件視為各個獨立的文件而不是一個長的連續(xù)輸入

      -u, --unbuffered

      從輸入文件讀取最少的數(shù)據(jù),更頻繁的刷新輸出

      --help 打印幫助并退出

      --version 輸出版本信息并退出

      如果沒有 -e, --expression, -f 或 --file 選項,那么第一個非選項參數(shù)被視為

      sed腳本。其他非選項參數(shù)被視為輸入文件,如果沒有輸入文件,那么程序?qū)臉藴?/p>

      輸入讀取數(shù)據(jù)。

      解讀:

      對于這個幫助信息,確實信息量非常不足,不過sed確實過于復雜,所以嘗試分成幾次來詳解這個命令。

      我再借用另一段幫助信息文檔

      調(diào)用sed命令有兩種形式:

      sed [options] 'command' file(s)

      sed [options] -f scriptfile file(s)

      options

      a\ 例如:sed "a\mm" file

      在當前行后面加入一行文本。

      b lable

      分支到腳本中帶有標記的地方,如果分支不存在則分支到腳本的末尾。

      c\

      用新的文本改變本行的文本。

      d

      從模板塊(Pattern space)位置刪除行。

      D

      刪除模板塊的第一行。

      i\

      在當前行上面插入文本。

      h

      拷貝模板塊的內(nèi)容到內(nèi)存中的緩沖區(qū)。

      H

      追加模板塊的內(nèi)容到內(nèi)存中的緩沖區(qū)

      g

      獲得內(nèi)存緩沖區(qū)的內(nèi)容,并替代當前模板塊中的文本。

      G

      獲得內(nèi)存緩沖區(qū)的內(nèi)容,并追加到當前模板塊文本的后面。

      l

      列表不能打印字符的清單。

      n

      讀取下一個輸入行,用下一個命令處理新的行而不是用第一個命令。

      N

      追加下一個輸入行到模板塊后面并在二者間嵌入一個新行,改變當前行號碼。

      p

      打印模板塊的行。

      P(大寫)

      打印模板塊的第一行。

      q

      退出Sed。

      r file

      從file中讀行。

      t label

      if分支,從最后一行開始,條件一旦滿足或者T,t命令,將導致分支到帶有標號的命令處,或者到腳本的末尾。

      T label

      錯誤分支,從最后一行開始,一旦發(fā)生錯誤或者T,t命令,將導致分支到帶有標號的命令處,或者到腳本的末尾。

      w file

      寫并追加模板塊到file末尾。

      W file

      寫并追加模板塊的第一行到file末尾。

      !

      表示后面的命令對所有沒有被選定的行發(fā)生作用。

      s/re/string

      用string替換正則表達式re。

      =

      打印當前行號碼。

      #

      把注釋擴展到下一個換行符以前。

      以下的是替換標記

      g表示行內(nèi)全面替換。

      p表示打印行。

      w表示把行寫入一個文件。

      x表示互換模板塊中的文本和緩沖區(qū)中的文本。

      y表示把一個字符翻譯為另外的字符(但是不用于正則表達式)

      區(qū)別加斜桿與不加

      例如: a\ 表示在a\后面加入內(nèi)容,而d則在d前面加入表達式,1d表示刪除1行。

    3632102