sed 全名叫 stream editor,流編輯器,用程式的方式來編輯文字。
#使用yours替換my,g表示替換改行所有匹配項
sed "s/my/yours/g" demo.txt
#指定行替換
sed "3s/my/yours/g" demo.txt
#指定多行替換
sed "3,6s/my/yours/g" demo.txt
#只替換每行第二個
sed "s/my/yours/2" demo.txt
#替換每行第2個以後的匹配項
sed "s/my/yours/2g" demo.txt
#多個匹配替換
sed "1,3s/my/yours/g; 2,$s/my/yours/g" demo.txt
#圓括號匹配後作為變數使用,\1 \2分別表示語句前面匹配的資料
sed 's/my \([^,&]*\),.*is \(.*\)/\1:\2/g' my.txt
#a引數表示增加 i引數表示插入,他們都是用於新增行的
#插入一行資料
sed "1 i this is my" demo.txt
#增加一行資料在最後
sed "$ a this my word" demo.txt
#匹配到的每行都增加
sed "/my/a ---" demo.txt
#將指定的行做替換
sed "2 c my word" demo.txt
#匹配的行做替換
sed "/my/c my word" demo.txt
#刪除匹配的行
sed "/fish/d" demo.txt
#刪除指定行
sed "2d" demo.txt
sed "2,$d" demo.txt
#匹配的行輸出,被匹配到的行會輸出兩次
sed "/fish/p" demo.txt
#值輸出匹配到的行
sed -n "/fish/p" demo.txt
#匹配行之間的輸出
sed -n "/dog/,/fish/p" demo.txt
#指定行到匹配行輸出
sed -n "1,/fish/p" demo.txt
#-e 引數
如果需要用 sed 對文字內容進行多種操作,則需要執行多條子命令來進行操作。
sed -e 's/hello/a/' -e 's/world/b/'
#-i 引數
sed 缺省會把輸入行讀取到模式空間,簡單理解就是乙個記憶體緩衝區,sed子命令處理的內容是模式空間中的內容,而非直接處理檔案內容。因此在 sed 修改模式空間內容之後,並非直接寫入修改輸入檔案,而是列印輸出到標準輸出。如果需要修改輸入檔案,那麼就可以指定 - i 選項。
#-f 引數
還記得 -e 選項可以來執行多個子命令操作,用分號分隔多個命令操作也是可以的,如果命令操作比較多的時候就會比較麻煩,這時候把多個子命令操作寫入指令碼檔案,然後使用 -f 選項來指定該指令碼。
sed 入門詳解教程
sed 簡明教程
sed簡單使用介紹
sed起源於行編輯器ed,sed用於專門執行指令碼的,sed不可以互動使用,sed是面向字元流的 區別於螢幕編輯器,vi,vim nano等 螢幕編輯器直接將檔案讀入記憶體,或檔案的一部分讀入記憶體,但是當檔案體積過大時,可能造成記憶體不足等情況 面向字元流的編輯器,每次預設讀取一行,輸入流通過程式...
sed命令使用簡單記錄
sed s pattern replace string file sed.txt中對每行的第乙個lifeng用lf替換 sed s lifeng lf sed.txt 原始檔內容不會變的 要替換所有內容,命令尾部加引數g sed s lifeng lf g sed.txt 要從每行的第二處內容進行...
sed 用法簡單總結
sed是乙個行編輯方式,才發現用熟練以後節約了很多時間 注意匹配是 的轉意作用 i 寫回原始檔 sed n 2p tmp 不要單引號其實也可以 sed n 1,3p tmp sed n try p tmp sed n 1,p tmp sed ing p tmp sed p tmp sed n s a...