sed入門

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

 sed的動作下面幾個用法

     a: 新增,a後面可以跟字符串,字符串會在目前的下一行出現

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

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

     d: 刪除

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

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

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

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

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 的參數,就是直接去修改文件本身的內容了。而不是由屏幕輸出。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章