歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> Linux sed命令 (stream editor)

Linux sed命令 (stream editor)

日期:2017/2/28 13:44:03   编辑:Linux教程

SED (stream editor)是一項Linux指令,功能同awk類似,差別在於,sed簡單,對列處理的功能要差一些,awk的功能復雜,對列處理的功能比較強大。

sed選項部分

-i: 直接修改讀取的檔案內容,而不僅僅是輸出

-n: 取消默認輸出,只打印處理的內容

-f: 直接將 sed 的動作寫在一個檔案內, -f filename 則可以執行 filename 內的sed 動作

-e: 直接在指令列模式上進行 sed 的動作編輯

-r: sed 的動作支援的是延伸型正規表示法的語法

sed命令部分

a: 新增 ‘1a test001’第一行後增加‘1,3a test001’第一行到第三行後增加

c: 取代 ‘1c test001’第一行取代為 test001 ‘1,3c test001’第一行到第三行取代為test001

/d: 刪除 ‘/test001/d’ 刪除 test001

/p: 打印 ‘/test001/p’ 一般與 sed -n ‘/test001/p’ 一起使用

s/: 修改 ‘s/test001/test002/g’ test.txt ->’s/要替換的內容/新的內容/g’

sed例子:

顯示行:

# sed -n ‘1p’ test.txt //只顯示第一行

# sed -n ‘$p’ test.txt //只顯示最後一行

# sed -n ‘1,2p’ test.txt //顯示第一行到第二行

# sed -n ‘2,$’ test.txt //顯示第二行到最後一行

刪除行:

# sed ‘1d’ test.txt //只刪除第一行

# sed ‘$d’ test.txt //只刪除最後一行

# sed ‘1,2d’ test.txt //刪除第一行到第二行

# sed ‘2,$’ test.txt //刪除第二行到最後一行

# sed '/test003/d' test.txt //刪除test003所在行

模糊查詢:

# sed -n ‘/test001/p’ test.txt //查詢test001關鍵字所在的所有行

增加行:

# sed -i ‘1a test002’ test.txt //第一行後增加test002

# sed -i ‘1,3a test002 test.txt //第一行到第三行後面添加test002

# sed -i ‘1a test003\ntest004’ test.txt //第一行後面添加多行

# sed -i ‘1,$a test0010’ test.txt // 第一行到最後一行添加test0010

替代行:

#sed -i ‘1c test002’ test.txt //第一行替代為 test002

#sed -i ‘1,3c test002’ test.txt //第一到第三行替代為 test002

#sed -i ‘1,$c test002’ test.txt // 第一行到最後一行替代為 test002

修改內容:

#sed -i ‘s/test001/test002/g’ test.txt // test002 修改為 test001

在sed命令中引入shell變量 http://www.linuxidc.com/Linux/2014-03/97896.htm

Linux下Shell編程——sed命令基本用法 http://www.linuxidc.com/Linux/2013-06/85526.htm

Linux常用命令:sed http://www.linuxidc.com/Linux/2016-10/136197.htm

Linux sed 高級用法實例 http://www.linuxidc.com/Linux/2016-10/136018.htm

sed命令詳解與示例 http://www.linuxidc.com/Linux/2014-11/109325.htm

Linux正則表達式sed 詳述 http://www.linuxidc.com/Linux/2015-04/116309.htm

Linux文本處理工具之sed http://www.linuxidc.com/Linux/2015-01/111436.htm

Copyright © Linux教程網 All Rights Reserved