sed是一種流編輯器,它是文本處理中很是中的工具,可以完美的配合正則表達式使用,功能與衆不同。處理時,把當前處理的行存儲在臨時緩衝區中,稱爲「模式空間」(pattern space),接着用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往屏幕。接着處理下一行,這樣不斷重複,直到文件末尾。文件內容並無 改變,除非你使用重定向存儲輸出。Sed主要用來自動編輯一個或多個文件;簡化對文件的反覆操做;編寫轉換程序等。正則表達式
命令格式:編輯器
sed [options] 'command' file(s)工具
sed [options] -f scriptfile file(s)
1.選項spa
2.參數ip
文件:指定待處理的文本文件列表。
3.sed命令字符串
4.sed替換標記get
5.sed元字符集io
1.替換文本中的字符串:test
sed 's/book/books/' file
-n選項和p命令一塊兒使用表示只打印那些發生替換的行:awk
sed -n 's/test/TEST/p' file
直接編輯文件選項-i,會匹配file文件中每一行的第一個book替換爲books:
sed -i 's/book/books/g' file
使用後綴 /g 標記會替換每一行中的全部匹配:
sed 's/book/books/g' file
2.刪除操做:d命令
刪除空白行:
sed '/^$/d' file
刪除文件的第2行:
sed '2d' file
刪除文件的第2行到末尾全部行:
sed '2,$d' file
3.從文件讀入:r命令
file裏的內容被讀進來,顯示在與test匹配的行後面,若是匹配多行,則file的內容將顯示在全部匹配行的下面:
sed '/test/r file' filename
4.寫入文件:w命令
在example中全部包含test的行都被寫入file裏:
sed -n '/test/w file' example
5.打印奇數行或偶數行
方法1:
sed -n 'p;n' test.txt #奇數行
sed -n 'n;p' test.txt #偶數行
方法2:
sed -n '1~2p' test.txt #奇數行
sed -n '2~2p' test.txt #偶數行
6.打印匹配字符串的下一行
grep -A 1 SCC URFILE
sed -n '/SCC/{n;p}' URFILE
awk '/SCC/{getline; print}' URFILE