sed(Stream Editor)行編輯器
? ? ? ? ? ? ? ? ? sed是讀取到數據至模式空間
? ? ? ? ? ? ? ? ? 默認不編輯原文件;僅對模式空間中的數據做處理
? ? ? ? ? ? ? ? ? 功能:主要用來自動編輯一個或多個文件,簡化對文件的反復操作。編寫程序等
語法
? ? ? ? ? ? ? ? ? sed [參數(option)] … ‘(sed腳本)script’ 文件名(inputfile)
常用選項
? ? ? ? ? ? ? ? ? -i ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?直接修改原文件
? ? ? ? ? ? ? ? ? -n ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ?靜默模式,不再默認顯示模式空間中的內容(不自動打印)
? ? ? ? ? ? ? ? ? -r ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? 表示 使用擴展正則表達式
? ? ? ? ? ? ? ? ? -e SCRIPT -e SCRIPT ? ? ? ? ? ? ? ? 可以同時執行多個腳本
? ? ? ? ? ? ? ? ? -f:/PATH/SCRIPT_FILE:? ? ? ? ?從指定文件中讀取編輯腳本
? ? ? ? ? ? ? ? ? -i.bak ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ?? ? ? ? ? ?備份文件并原處編輯
地址界定
? ? ? ? ? ? ? ? ? 1不給地址: 對全文進行處理
? ? ? ? ? ? ? ? ? 2單地址:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?指定的行,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? $ ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 最后一行
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /pattern/? ? ? ? ? ? ? ? ? ? ? ? 被此處模式所能夠匹配到的每一行
? ? ? ? ? ? ? ? 3地址范圍:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #,# ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?第幾行到第幾行
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #,+# ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 從第幾行到第N+1行
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? /pat1/,/pat2/? ? ? ? ? ? ? ? ?第一次被模式1匹配的行開始,至第一次被模式2匹配的行結束
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #,/pat1/? ? ? ? ? ? ? ? ? ? ? ?從第幾行到被模式1匹配的行結束
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ~:步進
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1~2 奇數行
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 2~2 偶數行
編輯命令
? ? ? ? ? ? ? ? ? 參數
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? d ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 刪除模式空間匹配的行,并立即啟用下一輪循環
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 例: sed ‘2!d’ f1
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? p ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?顯示符合條件的行
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? a\string? ? ? ? ? ? ? ? ? ? ? ? ? ? 在指定行后面追加新行,內容為string 支持使用\n實現多行追加
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? i\string ? ? ? ? ? ? ? ? ? ? ? ? ? ? 在行前面添加辛新行,內容為string
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? c\string ? ? ? ? ? ? ? ? ? ? ? ? ? ?替換行為單行或多行文本
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? w /path/somefile? ? ? ? ? ?保存模式匹配的行至指定文件
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? r /path/somefile? ? ? ? ? ? 讀取指定文件的文本至模式空間中
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ! ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 取反
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? = ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?為模式空間中的行打印行號
查找替換
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? s/pattern/string/ ? ? ? ? ?查找替換,支持使用其他分隔符,s@@@,s###
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? g ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?行內全局替換
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? p ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?顯示替換成功的行
? ? ? ? ? ? ? ?w /PATH/TO/SOMEFILE:? ? ? ? ? 將替換成功的行保存至文本文件
未完待續……………………….
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/95758