2021-05-12 14:32:11
Linux sed命令 (stream editor)
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 test003ntest004’ 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
本文永久更新連結地址:http://www.linuxidc.com/Linux/2017-02/140116.htm
相關文章