shell-sed

Sed工做原理

sed是一款流編輯工具,用來對文本進行過濾與替換工做,sed經過輸入讀取的文件內容,但一次僅讀取一行內容進行某些指令處理後輸出,sed更適合處理大數據文件。
具體請百度,就不一一粘貼了

sed在處理文本文件的時候,會在內存上建立一個模式空間,而後把這個文件的每一行調入模式永健用相應的命令處理,而後sed使用指令對行進行操做,操做完成以後看看sed中有沒有-n參數,沒有-n,sed會將行輸出到stdout,而後在將第二行讀入,而後執行指令進行處理,而後看看有沒有-n,沒有輸出到stdout,直到最後。正則表達式

sed的基本語法:
    sed [選項] 「命令」 文件
    sed [選項] -f 腳本文件 文件

文本的操做:vim

sed是一個「非交互式的」面向字符流的編輯器,awk是一種負責模式匹配的程序設計語言,它的典型示例是將數據轉換成格式化的報表。
sed和vim同樣是編輯器,sed是非交互式的,經過參數完成不一樣的操做,vim是交互式的,vim須要通知處理文件的那幾行纔回去處理,sed默認
會處理文件的全部行,除非你告訴他不處理那幾行。
sed最主要的功能就是替換。拿到文件,文件不符合你的要求把內容作替換,文件格式不符合要求,能夠匹配格式作替換

sed [選項] '[尋址]s/模式/替換/[標誌]'編輯器

sed的相關簡單操做能夠看以前寫的一篇文章或者自行百度。不作詳細操做工具

sed使用正則表達式

使用正則表達式匹配模式
元字符
  . 匹配除換行符以外的任意單個字符,awk中能夠匹配換行符
  * 匹配任意一個(包括0個)在它前面的字符
  [...] 匹配方括號中的任意一個字符,^爲否認匹配,-表示字符的範圍
  ^ 做爲正則表達式的第一個字符,匹配行的開始,在awk中能夠匹配換行符
  $ 做爲正則表達式的最後一個字符,匹配行的結尾,在awk中能夠匹配換行符
  \{n,m\} 匹配出現的n到m次,\{n\}匹配出現n次,\{n,\} 匹配至少出現n次
  \ 轉義字符
擴展元字符(sed要使用擴展元字符須要使用-r)
  + 匹配前面的正則表達式的一次出現或者屢次出現
  ? 匹配前面的正則表達式的零次出現或者一次出現
  | 能夠匹配前邊或者後邊的正則表達式
  () 對正則表達式進行分組
  {n,m}匹配出現的n到m次數,{n}匹配出現n次,{n,}匹配至少出現n次

sed須要使用單引號,大數據

 具體用法百度。。spa

sed指明瞭及分組引用

標誌flags:
  g 全局更改
  n 能夠是1-512,表示第n次出現的狀況進行替換
  p 打印模式空間的內容
  w file寫入到另外一個文件file中
  & 用正則表達式匹配的內容進行替換
  \n 回調參數

具體案例百度,時間不夠,以後抽空都會加上。設計

sed高級指令

sed高級指令
sed只有一段內存空間叫模式空間,但有的時候可能要作一些保存。
好比:處理第一行第二行第三行,但有時候但願處理完第二行回到第一行去處理,這種狀況下基本的sed是作不到的,此時須要高級操做
高級指令只作瞭解
    1.比普通命令用的少
    2.全部的命令均可以使用awk去替代
高級指令分三個組:
    1.處理多汗模式空間(N,D,P)
    2.採用保持空間來保存模式空間的內容並使他客用戶後續的命令(H,h,G,g,x)
    3.編寫使用分支和條件的指令腳原本更改控制流

sed空間轉換

我有PDF文檔,若是有須要的能夠留言,我百度雲分享code

相關文章
相關標籤/搜索
本站公眾號
   歡迎關注本站公眾號,獲取更多信息