sed入門

sed是stream editor 流編輯器的縮寫,是文本處理很重要的一個工具,它完美的能夠配合正則表達式去使用。下面介紹sed經常使用的技術。正則表達式

 sed的動做下面幾個用法less

     a: 新增,a後面能夠跟字符串,字符串會在目前的下一行出現編輯器

例子:    nl  /etc/passwd   | sed '2a i love it' | less
ide

nl是將文件的行號打開,這樣就在文件的第二行的下一行加入了「i love it」這個字符串,而且我less分行顯示出來。
工具

     d: 刪除
this

例子: nl  /etc/passwd  | sed '2,6d'  | less
字符串

將文件的第2到第6行的內容刪除而且分行顯示。
string

      i:插入,後面能夠跟字符串,字符串會在目前的上一行出現it

例子: nl /etc/passwd | sed '2i i love it' | less
class

nl是將文件的行號打開,這樣就在文件的第二行的上一行加入了「i love it」這個字符串,而且我less分行顯示出來。

      p: 打印,一般帶上-n的參數,意思是隻顯示發生變化的行顯示。

例子:nl /etc/passwd | sed -n '2,7p'

將文件第2到7行打印出來

      c:替換,c後接字符串,直接替換選中行的所有內容

例子:nl /etc/passwd | sed '2,5c i want replace this' | less

將文件的第2到5行的內容換成「i want replace this」這個字符串。

      s:替換,最經常使用的參數,能夠搭配正則表達式

 1.替代給定文本中的字符串,只將每一行中的第一處符合樣式的內容替換掉。

例子: 我有一個文件叫file,內容以下:

wwwmmmmm

qwwwmmmmm

qqwwwmmmmm

如今我想把每一行的第一個w換成b

sed 's/w/b/' file | less    

這樣就可達到目地,只將每一行的第一個w換成b,而不是所有替換

 2.替代給定文本中的字符串,全文替代。

例子:仍是上面的file,如今須要把全部的w換成b

sed 's/w/b/g' file | less  

就是在上面的基礎加上一個g就能夠達到目地

 擴展 :  sed 's/pattern/replace_string/Ng'  file

  N的意思是從N處開始替換,例如sed 's/w/b/3g' aa  意思是我從每一行的第三個字符開始替換,忽略前面的字符。

 3.移除空白行,使用正則表達式

 sed '/^$/d' file



sed -i  得意思是直接修改文件內容,前面的也能夠帶上-i 的參數,就是直接去修改文件自己的內容了。而不是由屏幕輸出。

相關文章
相關標籤/搜索