1. SED命令的格式:
6). 執(zhí)行流程控制命令:
1. 將文件中所以小寫變大寫: 2. 將包含"ERROR"的行, 替換為"This line has error" 3. 部分行的輸出與刪除
|
[address [,address]] command [argument]
address: 行數(shù), 可以有0,1,2個地址參數(shù), 表明命令作用于全部行,
某一行, 或者是某幾連續(xù)行. 也可以是正則表達式
command: 命令, 表明進行的操作
argument: 該命令對應的參數(shù), 只有替換命令(s)可以帶參數(shù)
Command
|
功能
|
地址參數(shù)
可能個數(shù)
|
說明
|
d
|
刪除一行
|
0,1,2
|
將匹配的該行文字刪除, 不輸出
|
n
|
讀入下一行
|
0,1,2
|
將匹配行文字輸出,從輸入讀入下一行文字, 繼續(xù)執(zhí)行下一個指令
|
a\
|
加入文字
|
0,1
|
將文字加入到匹配行文字后輸出
|
i\
|
插入文字
|
0,1
|
將文字插入到匹配行文字前輸出
|
c\
|
替換文字
|
0,1,2
|
將文字替換匹配行文字進行輸出
|
Command
|
功能
|
說明
|
s
|
模式替換
|
找到匹配行, 進行替換操作
|
y
|
子元轉(zhuǎn)換
|
找到匹配行, 進行子元轉(zhuǎn)換
|
s命令: sed中唯一的帶參數(shù)的命令, 可以有4種參數(shù):
g參數(shù), 在該行中, 替換所以匹配而不是只替換第一次匹配
n 參數(shù), 在該行中, 替換第n個匹配
p參數(shù), 對該行執(zhí)行替換, 并輸出該行文字
w filename 參數(shù), 將替換后的該行寫入filename文件中
如, /UNIX/s/OK/YES/g, 含UNIX的行, 所有OK->YES
該命令內(nèi)嵌入vi編輯器中.
y命令: 該行中所有對應子元進行轉(zhuǎn)換.
如, 1,5y/abc/edf/, 所以1到5行所有子元: a->e, b->d, c->f 轉(zhuǎn)換
Command |
功能 |
地址參數(shù) 可能個數(shù) |
說明 |
p |
送至輸出 |
0,1,2 |
遇匹配行時, 輸出pattern space 內(nèi)容 |
l |
送至輸出 |
0,1,2 |
與p類似,不同的是將鍵盤上無法輸出的字符用8進制輸出,超過72個字長的部分移到下一行 |
w filename |
寫入文件 |
0,1,2 |
將匹配行文字寫入文件filename中 |
r filename |
從文件讀入 |
0,1,2 |
對匹配行,用filename中的文字輸出 |
*SED將內(nèi)部分為pattern space(工作區(qū))和hold space(暫存區(qū))
通常sed一次處理一行文字, 這些命令賦予多行處理能力
Command
|
功能
|
地址參數(shù)
可能個數(shù)
|
說明
|
N
|
Next line
|
0,1,2
|
與匹配行時,再讀入下一行,加在當前pattern space文字的后面
|
D
|
Delete first part of pattern space
|
NO address
|
將pattern space第一個new line字母前的文字刪去,僅一個newline字母時,相當于d 命令
|
P
|
Print first part
of pattern space
|
NO address
|
將pattern space第一個new line字母前的文字輸出
|
pattern space與hold space文字的交互
Command
|
功能
|
地址參數(shù)
可能個數(shù)
|
說明
|
h
|
pattern space拷貝到hold space
|
0,1,2
|
將pattern space內(nèi)容拷貝到hold space
|
H
|
pattern space 加到hold space
|
0,1,2
|
將pattern space內(nèi)容加到hold space后
|
g
|
h反方向
|
0,1,2
|
將hold space內(nèi)容拷貝到pattern space
|
G
|
H反方向
|
0,1,2
|
將hold space內(nèi)容加到pattern space后
|
x
|
交互兩個space
|
|
將pattern space與hold space內(nèi)容交換
|
|