- 論壇徽章:
- 0
|
s e d是一個非交互性文本流編輯器。它編輯文件或標準輸入導(dǎo)出的文本拷貝。標準輸入可
能是來自鍵盤、文件重定向、字符串或變量,或者是一個管道的文本。s e d可以做些什么呢?
別忘了,Vi也是一個文本編輯器。s e d可以隨意編輯小或大的文件,有許多s e d命令用來編輯、
刪除,并允許做這項工作時不在現(xiàn)場。s e d一次性處理所有改變,因而變得很有效,對用戶來
講,最重要的是節(jié)省了時間。
可以在命令行輸入s e d命令,也可以在一個文件中寫入命令,然后調(diào)用s e d,這與a w k基本
相同。使用s e d需要記住的一個重要事實是,無論命令是什么, s e d并不與初始化文件打交道,
它操作的只是一個拷貝,然后所有的改動如果沒有重定向到一個文件,將輸出到屏幕。
因為s e d是一個非交互性編輯器,必須通過行號或正則表達式指定要改變的文本行。
sed怎樣讀取數(shù)據(jù)
s e d從文件的一個文本行或從標準輸入的幾種格式中讀取數(shù)據(jù),將之拷貝到一個編輯緩沖
區(qū),然后讀命令行或腳本的第一條命令,并使用這些命令查找模式或定位行號編輯它。重復(fù)
此過程直到命令結(jié)束。
使用s e d命令行格式為:
sed [選項] s e d命令輸入文件。
記住在命令行使用s e d命令時,實際命令要加單引號。s e d也允許加雙引號。
使用s e d腳本文件,格式為:
sed [選項] -f sed腳本文件輸入文件
要使用第一行具有s e d命令解釋器的s e d腳本文件,其格式為:
s e d腳本文件[選項] 輸入文件
不管是使用s h e l l命令行方式或腳本文件方式,如果沒有指定輸入文件, s e d從標準輸入中
接受輸入,一般是鍵盤或重定向結(jié)果。
s e d選項如下:
n 不打印;s e d不寫編輯行到標準輸出,缺省為打印所有行(編輯和未編輯)。p命令可以
用來打印編輯行。
c 下一命令是編輯命令。使用多項編輯時加入此選項。如果只用到一條s e d命令,
此選項無用,但指定它也沒有關(guān)系。
f 如果正在調(diào)用s e d腳本文件。
使用s e d在文件中定位文本的方式
x x為一行號,如1
x , y 表示行號范圍從x到y(tǒng),如2,5表示從第2行到第5行
/ p a t t e r n / 查詢包含模式的行。例如/ d i s k /或/[a-z]/
/ p a t t e r n / p a t t e r n / 查詢包含兩個模式的行。例如/ d i s k / d i s k s /
p a t t e r n / , x 在給定行號上查詢包含模式的行。如/ r i b b o n / , 3
x , / p a t t e r n / 通過行號和模式查詢匹配行。3 . / v d u /
x , y ! 查詢不包含指定行號x和y的行。1 , 2 !
基本sed編輯命令
p 打印匹配行
= 顯示文件行號
a 在定位行號后附加新文本信息
i 在定位行號后插入新文本信息
d 刪除定位行
c 用新文本替換定位文本
s 替換模式
本文來自ChinaUnix博客,如果查看原文請點:http://blog.chinaunix.net/u/11500/showart_56635.html |
|