學習手冊 emacs info
1。sed 乙個流編輯器。
它能在乙個檔案或管道上進行基本的文字操作。
2。如何呼叫sed?
sed options... [script] [inputfile...]
沒有說明inputfile時,或者inputfile是「-」,輸入流為標準輸入
命令列選項(options)
--version
--help
-n 或者--quiet或者--silent
取消自動列印功能,只列印 p 命令所指定的
-i[suffix]或者--in-place[=suffix]
原地編輯,將編輯結果寫回原始檔,suffix指明原始檔如何備份,缺少的話就不備份
-l n或者--line-length=n指定較長的字元行如何回折[wrap],預設是70個字元
--posix
遵從posix標準
-r或者--regexp-extended
使用拓展的正規表示式,即'egrep'命令接受的
-s或者--seperate
預設情況下,sed將所有輸入檔案當作乙個連續的流,這個選項允許使用者將他們看作分立的檔案
-u或者--unbuffered
-e script或者--expression=script
將命令新增到命令集中,即增加乙個命令操作
-f script-file或者--file=script-file
將script-file中的命令新增到命令集中
3。sed programs
sed如何工作?
sed維持這兩個快取 active _pattern_ space 和 auxiliary _hold_ space。開始的時候他們都是空的。
sed重複著乙個工作環:首先,從輸入流中讀入一行,去掉尾端的換行符,並把它放到pattern space裡面。
然後執行相應的命令集。命令關聯著條件,只有條件滿足,才能執行命令。當執行完最後乙個命令時,如果沒有-n選項,pattern space裡的內容會列印到輸出流,並把開始時去掉的換行符添上。然後開始下乙個迴圈,讀入下一行。
sed如何確定要處理的範圍?或者說,定址?
定址方式:
每種定址方式都確定一系列行的範圍。在定址串後面跟乙個感嘆號!表示反選。
各種定址方式:
number
直接指定第number行
first~step
從第first行開始,每隔step行選取一行。
匹配當前檔案的最後一行
/regexp/ /%regexp%
選擇匹配regexp正規表示式的行
/regexp/i /regxp/m
i表示忽略大小寫, m表示多行。
正規表示式總覽:
普通字元對應它們自身
*匹配零或多個它前面的個體
'/+' 和*差不多,但至少匹配一次
'/?' 和*差不多,但匹配零或著一次
'/' 匹配i次
'/' 匹配i到j次
'/'匹配至少i次
'/(regexp/)' 將regexp作為乙個整體
'.' 匹配任何字元
'^' 匹配行開始
'$' 匹配行結束
'[list]'
'[^list]'
匹配list中的任意字元,加上^表示匹配不是list中的任意字元
『regexp/|regexp『匹配至少其中乙個表示式
『regexp1regexp2』匹配兩個表示式
』/digit『 向前引用第digit個括號表示式
'/n' 匹配換行符
'/char' 字元轉義: '$', '*', '.', '[', '/', '^'
例子:『abcdef' 匹配 'abcdef'
'a*b' 匹配以b結尾的字串,前面有零或多個a
'a/?b' 匹配 'b' 或者 'ab'
'//$'匹配以右斜線結尾的字串
'^/(.*/)/n/1$' 匹配乙個字串,該字串包含兩個相等的被換行符分割的字串
經常使用的命令
'#' 注釋一行
'q [exit-code] 退出
'p' 列印pattern space
'n'
' 命令集
s命令
完整格式
s/regexp/replacement/flags
其中/可由其它字元代替,該字元在regexp或者replacement中必須轉義
replacement可以使用/n引用regexp匹配的第n部分
replacement中
/l 將字元轉化為小寫,知道遇到 /e 或者/u
/l 將後面乙個字元小寫
/u 將字元轉化為小寫,知道遇到 /e 或者/l
/u 將後面乙個字元大寫
flags
g 應用於所有的匹配,不僅僅是預設的第乙個
number 應用第number個
p 列印出來
i i 大小寫不敏感
m m 多行匹配
sed流編輯器
sed預設不編輯原始檔,僅對模式空間中的資料做處理 而後,處理結束後,將模式空間中的內容列印至螢幕。sed options addresscommand file.用行,和命令一起來操作文字 options n 靜默顯示,不再顯示模式空間中的內容 i 直接修改原檔案 e 指令碼 e指令碼 可以同時執...
sed 流編輯器
sed 模式空間 預設不編輯原檔案,僅對模式空間中的資料做處理 而後,處理結束後,將模式空間列印至螢幕 sed options addresscommand file n 靜默模式,不再預設顯示模式空間中的內容 i 直接修改原檔案 e script e script 可以同時執行多個指令碼 f pa...
sed(流編輯器)詳解
行編輯器 全屏編輯器 vi sed 模式空間 預設不編輯原檔案,僅對模式空間中的資料做處理 而後,處理結束後,將模式空間列印至螢幕。sed options addresscommand file options n 靜默模式,不再預設顯示模式空間中的內容 i 直接修改原檔案 i.bak 備份原檔案 ...