sed 非交互式流編輯器
1.默認情況sed不會改變原文件,處理文本時以行爲單位,每處理一行就打印出來,然後再處理下一行,直到文件結束
2.編輯動作:刪除、查找替換、添加、插入、從其他文件讀入數據
3.要保存修改後的文件,使用重定向
4.直接修改源文件本身,使用-i參數
5.使用場景:常規編輯器編輯困難的文件、過於龐大的文件、有規律的文本修改(幾百兆的文件),加快處理速度(全文替換)
6.sed [options] 'commands' 文件
options 可接受的參數
commands sed命令集(25個)
commands
1.-e 和分號連接多編輯命令(一般情況可忽略)
sed -e 's/this/That/g' -e 's/line/LINE/g' sed.txt
sed 's/this/That/g ; s/line/LINE/g' sed.txt
2.d刪除指定的行
補充:如果希望保存修改後的文件 使用重定向 sed -i '1d' sed.txt > sed1.txt
3.查找替換
s命令可將查找到的匹配文本替換爲新的文本,默認情況只替換第一次匹配到的內容,命令g完成所有匹配值的替換
sed 's/line/LINE/'
sed 's/line/LINE/g'
字符轉換y
將一系列字符逐個變換爲另外一系列字符
插入文本a/i
使用i在第二行之前插入insert
sed '2 i insert' sed.txt
使用i在第二行之後插入insert
sed '2 a insert' sed.txt
讀入文本r
從其他文本讀入文本 並插入匹配行之後
sed '/^$/r /etc/passwd' sed.txt (插入到空白行之後)
打印p
寫文件
默認不改寫源文件,只對緩衝區文件做修改並修改到屏幕,如果要保存文件,(除重定向或-i參數)。使用w命令保存到外部文件
sed -n '1,2 w output' sed.txt (output文件前兩行是sed前兩行的內容)
sed腳本
1.替換this爲THAT,並刪除空白行
sed.rules
s/this/THAT/g
/^$/d
2.-f參數指定改腳本應用於sed.txt
3.sed -f sed.rules sed.txt