sed命令

1.簡介  

   sed命令不會修改文件的內容,除非使用shell的I/O重定向,默認所有的輸出行都輸出到標準輸出中。


2.過濾(定址)

  可以使用過濾條件確定需要編輯的行,數字、正則、前兩者結合,如果沒有過濾,則默認輸出所有行。

   a.地址是一個數字則表示行號,是"$"符號則表示最後一行:

$sed -n '3p' a.txt

          只輸出第三行

    b.可以指定行號範圍:

$sed '100,200p' a.txt

      輸出第100行到第200行


     c.地址是以","分割,可以是數字、正則、兩者結合的表達式

       

#刪除第2到第5行
sed '2,5d' a.txt
#刪除包含"john"的行到第10行
sed '/john/,10d' a.txt
#刪除包含"john"的行到包含"lili"的行
sed '/john/,/lili/' a.txt

3.命令與選項

  a\命令:在當前行後添加一行或多行,多行時除最後一行需要用\續行

 

#在文件learn.txt中的含有cat的行後插入內容爲aaa、bbb的兩行
sed '/cat/a\ aaa\ bbb' learn.txt

 

  c\命令:用該命令後的新文本替換當前行的文本。多行時除最後一行要用\續行

   

#用aaa bbb替換含有cat的行
sed '/cat/c\ aaa\ bbb' learn.txt

 

  i\命令:在當前行之前插入新文本,新文本爲多行時除最後一行需要用\續行

 

#在含有cat的行之前插入aaaa bbbb
sed '/cat/i\ aaaa\ bbbb' learn.txt

 

   d命令:刪除行

                 

#刪除最後一行
sed '$d' learn.txt
#刪除含有cat的行
sed '/cat/d' learn.txt

   

   p命令:顯示內容

     

#默認打印所有行,並將含有cat的行另外打印一遍
sed '/cat/p' learn.txt
#加入-n後取消默認打印,p命令只把含有cat的行打印一遍
sed -n '/cat/p' learn.txt


   s命令:文本替換

   

#在含有cat的行中將所有cat替換爲dog
sed 's/cat/dog/g' learn.txt

         

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