文本處理工具之sed的用法

目錄:1.sed概述
2.sed的語法
3.sed的一些常用選項和命令
4.用法舉例
一.sed的概述
1.sed是什麼
sed是一種流編輯器,它一次處理一行內容。處理時,把當前 處理的行存儲在臨時緩衝區中,稱爲“模式空間”(pattern space),接着用sed命令處理緩衝區中的內容,處理完成後 ,把緩衝區的內容送往屏幕。然後讀入下行,執行下一個循 環。如果沒有使諸如‘D’的特殊命令,那會在兩個循環之間 清空模式空間,但不會清空保留空間。這樣不斷重複,直到 文件末尾。文件內容並沒有改變,除非你使用重定向存儲輸 出。
2.sed的運行流程
sed是將文本一行一行的提取到模式空間,用腳本進行處理,一定命令下進入保持空間然後再進入模式空間再打印出來。(保持空間裏的內容不能直接打印,必須要進入模式空間後才能打印出來)
文本處理工具之sed的用法
(圖中藍色的箭頭表示文本或文件不進入保持空間的情況,紅色的箭頭表示進入保持空間的情況)
二.sed的語法格式
sed 選項... [腳本指令] [輸入文件]
三. 常用選項和命令
常用選項文本處理工具之sed的用法(當要執行多個命令時除了可以用-e進行多點編輯還可以用分號把多個命令隔開或者\加回車換行輸入。三種方式都可以實現執行多條命令)

]# sed -e 's/1/2/' -e 's/3/4/' 123.txt
]# sed 's/1/2/';'s/3/4/' 123.txt
]# sed ' >s/1/2/ >s/3/4/' 123.txt (這裏>表示換行)
常用命令文本處理工具之sed的用法
地址定界:
(1) 不給地址:對全文進行處理
(2) 單地址: #: 指定的行 /pattern/:被此處模式所能夠匹配到的每一行
(3) 地址範圍: #,# #,+# /pat1/,/pat2/ #,/pat1/
(4) ~:步進 1~2 奇數行 2~2 偶數行
四。實際例子 1. 處理/etc/fstab路徑,使用sed命令取出其目錄名
文本處理工具之sed的用法
這裏用到了替換的命令把別的內容都替換成目錄名 然後只顯示替換後的內容從而達到題目的意思。
2.刪除/etc/fstab文件中所有以#開頭,後面至少跟一個空白字符的行。 處理前 文本處理工具之sed的用法處理後文本處理工具之sed的用法
這裏先用-r支持正則表達式把行首的#以及後面若干個空格的行表示出來再用d刪除從而達到題目要求。
3.在/etc/fstab文件中不以#開頭的行的行首增加#號
文本處理工具之sed的用法
截取部分內容
文本處理工具之sed的用法
用-r支持正則表達式 然後把行首的^替換成#從而達到題目的要求
4.將文本文件的n和n+1行合併爲一行,n爲奇數行
文本處理工具之sed的用法查看原文件
文本處理工具之sed的用法
利用N的用法把讀取的下一行追加到模式空間然後把換行符替換成 ' , ' 從而達到題目要求。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章