sed (stream editor 流編輯器)
基本語法:
sed [-n] program [file-list]
sed [-n] –f program-file [file-list]
sed 是一個批處理編輯器。可以對來自文件或者標準輸入的輸入流進行交換。常被用于管道中的過濾器。sed工具從命令行所指定的文件或者標準輸入中獲取輸入流。除非明確指定輸出目標,否則將把結果輸出到標準輸出。
選項參數
-n (quiet, silent) 安靜模式。加上-n后,只有經過sed特殊處理的那一行才會被列出來
-e (script, --expression=script) 直接在指令列模式上進行sed動作編輯
-f (script-file, --file=script-file) 直接將sed的動作寫在一個文件內
Sed 動作
-i ([SUFFIX], --in-place[=SUFFIX]) 直接修改讀取的文件內容,而不是由屏幕輸出
-r (regexp-extended) sed的動作支持的是延伸型正則表示法的語法。(預設是基礎正則表示法語法)
動作說明:[n1, [n2]]function
n1, n2: 不一定存在,表示選擇進行動作
a (append) 新增,a 的后面可以接字符串,而這些字符串會在新的一行出現(當前行的系一行)
c (change,replace) 取代,c后面的接字符串,講匹配的行替換為c后接的字符串
d (delete) 刪除
i (Insert) 插入, i的后面接字符串,而這些字符串會在新的一行出現(當前行的上一行)
p (print) 打印,將某個選擇的數據打印。通常p會與參數sed –n一起運行
s (substitution) 取代,可以直接進行取代的工作。通常的搭配是:s/old/new/g
w (write) 將匹配的內容寫入另外一個文件中
h/H 將 pattern space 拷貝到 hold space
g/G 將 hold space拷貝到 pattern space
-n 和 p 一起使用表示只打印發生匹配的行
以上是在含有Deve的行后加上(append) teste
以上是在含有Deve的行前加上(Insert) teste
以上為將漢以后deve的整行替換為teset
3)行內的內容替換以上分別是
A. 刪除指定的第二行到含有good的行,講剩余行打印出來
B. 刪除第2行到第6行
C. 刪除含有good的行
以上使用()來表示對應的匹配項, 最多匹配到9項。
8)&符號表示替換字符串中被找到的部分以上打印從含有You的行開始到含有Plan的行之間的行,無論Plan出現在哪兒,之間的行都被打印,如果Plan沒出現,中間的行都將被打印
以上是打印從第3行到含有Plan的行之間的行,如果Plan沒出現,中間的行都將被打印
以上都是將第1行到第6行刪掉,然后將剩余的good替換為better。 第二個示例中是再將Dev替換為def