一般在實際使用編輯器的過程中 , 常需要執(zhí)行替換文件中的字符串、移動、刪除、與搜尋數(shù)據(jù)行等等動作。當然 , 一般交互式編輯器(如 vi、emacs)都能做得到上述功能 , 但文件一旦有大量上述編輯需求時 , 則用它們編輯十分沒有效率。本文列舉一些常用的sed的使用范例,以備不時之需。
1.把開頭/結(jié)尾為str1的行替換為str2:
sed -i 's/^str1.*/str2/' filename ###以str1開頭sed -i 's/.*str1$/str2/' filename ###以str1結(jié)尾sed -i 's/.*str1.*/str2/' filename ###含有str1
2.將文件中含 "arr" 字符串的數(shù)據(jù)行中的 "str1" 字符串 , 替換成為 "str2" 字符串:
sed -e '/arr/s/str1/str2/g' filename ##含有g(shù)說明是全局替換
3.將文件中第 5 行數(shù)據(jù) , 替換成句子"hello world?。?!"
sed -e '5c\hello world!!!' filename
4.將文件中 1 至 100 行 , 替換成如下兩行:
how are you?my name is feige.
命令如下:
sed -e '1,100c\How are you?my name is feige.' filename
1.刪除空行:
sed -e '/^ *$/d' filename ### *號前面有一個空格符哦~
2.刪除含有指定字符串str的行:
sed -f '/str/d' filename
1.將文件中的前 100 數(shù)據(jù) , 搬到文件中第 300 后輸出。其命令如下:
sed -f mov.txt targetfile ## targetfile是要操作的文件,mov.txt里面放的是操作指令
其中mov.txt文檔的內(nèi)容為:
1,100{Hd}300G
2.將from.txt文件中含 "phi" 字符串的數(shù)據(jù)行 , 移動到to.txt文件中儲存。其命令如下:
sed -e '/phi/w to.txt' from.txt
3.將 from.txt文件內(nèi)容 , 移動至to.txt文件中含 "beta" 字符串的數(shù)據(jù)行。其命令如下:
sed -e '/beta/r from.txt' to.txt
1.將文件中含 "omega" 字符串的數(shù)據(jù)輸出:
sed -f grep.txt targetfile
其中g(shù)rep.txt的內(nèi)容如下:
/omega/bNhs/.*\n///omega/bgD