sed文本處理命令

sed簡介


sed 是一種在線編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩衝區中,稱爲「模式空間」(pattern space),接着用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往屏幕。接着處理下一行,這樣不斷重複,直到文件末尾。文件內容並無 改變,sed只是對緩衝區中原始文件的副本進行編輯,並非編輯原始的文件。除非你使用重定向存儲輸出或者使用使用sed編輯命令中的w選項。Sed主要用來自動編輯一個或多個文件;簡化對文件的反覆操做。編輯器

sed命令參數

 

  • a :新增, a 的後面能夠接字串,而這些字串會在新的一行出現(目前的下一行)
  • c :取代, c 的後面能夠接字串,這些字串能夠取代 n1,n2 之間的行!
  • d :刪除,由於是刪除啊,因此 d 後面一般不接任何咚咚;
  • i :插入, i 的後面能夠接字串,而這些字串會在新的一行出現(目前的上一行);
  • p :列印,亦即將某個選擇的數據印出。一般 p 會與參數 sed -n 一塊兒運行
  • s :取代,能夠直接進行取代的工做哩!一般這個 s 的動做能夠搭配正規表示法!例如 1,20s/old/new/g 就是啦

不怎麼喜歡理論行的東西,來來來,實踐實踐~~~
操做的文件爲sedfilespa

  • 在指定行添加行內容,好比在第三行添加"insertLine"內容
$sed -e 3a\insertLine sedfile
sed '2a insert' sedfile #在第三行後添加 即第三行開始
sed '2i insert' sedfile #在第二行前添加 即第二行開始

 

Paste_Image.pngcode

  • 刪除指定行內容,能夠是一個範圍的多行【1,2,3,4,5...$表示最後一行】
$sed -e '2,4d' sedfile #推薦
或者
$sed '2,4d' sedfile #沒有-e也是能夠的
#刪除第二行
$sed '2d' sedfile
#要刪除第 3 到最後一行
$sed '3,$d' sedfile
#注意 d表示刪除然而 sed 後面接的是動做須要以單引號括起來

 

Paste_Image.png文檔

  • 以行爲單位替換內容
$sed '2,5c 這是alic替換的content' sedfile #替換第二到第五行的內容

 

Paste_Image.pngstring

  • 以行爲單位的顯示
$sed -n '2,4p' sedfile #顯示第二到第四行
$sed -n '二p' sedfile #搜索與二相關的行

 

Paste_Image.pngio

  • 內容的搜索並刪除【以行爲單位】
$sed '/二/d' sedfile #搜索到二相關的行並刪除

 

Paste_Image.pngast

  • 內容搜索並替換
$sed 's/alic/燦/g' sedfile #將alic替換成燦

 

Paste_Image.pngtest

  • 多點處理
sed -e '3,4d' -e 's/alic/燦/g' sedfile #刪除第三四行 並且同時將alic替換成燦

 

Paste_Image.pngsed

 

注意   :  以:爲分割,將第一段和最後一段調換位置;+在裏面是特殊符號,要脫意用-rfile

sed -r 's/([^:]+):(.*):([^:]+)/\3:\2:\1/'g test.txt



經常使用案例  :

sed ‘s/stringa1/stringa2/g’ example.txt            example.txt文件中的 「string1」 替換成 「string2」 
sed ‘/^
/d’ example.txt                               example.txt文件中刪除全部空白行   
sed ‘/ *#/d; /^/d’ example.txt                     example.txt文件中刪除全部註釋和空白行 
echo ‘esempio’ | tr ‘[:lower:]’ ‘[:upper:]’               合併上下單元格內容 
sed -e ‘1d’ result.txt                    從文件example.txt 中排除第一行 
sed -n ‘/stringa1/p’                     查看只包含詞彙 「string1」的行 
sed -e ‘s/ *//’ example.txt           刪除每一行最後的空白字符   


sed -e ‘s/stringa1//g’ example.txt                    從文檔中只刪除詞彙 「string1」 並保留剩餘所有   
sed -n ‘1,5p;5q’ example.txt                      查看從第一行到第5行內容   
sed -n ‘5p;5q’ example.txt                  查看第5   
sed -e ‘s/00*/0/g’ example.txt                          用單個零替換多個零     

相關文章
相關標籤/搜索