文本處理工具sed

1  :處理文本的工具sed  

     sed 本身就是一個自動打印工具

Stream EDitor, 行編輯器       sed   批量改文件  

語法   sed    【 選項】       【sed自己的腳本】    【 input  文件】.....、

sed是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩衝區中,稱爲“模式空間”(pattern space),接着用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往屏幕。然後讀入下行,執行下一個循環。如果沒有使諸如‘D’的特殊命令,那會在兩個循環之間清空模式空間,但不會清空保留空間。這樣不斷重複,直到文件末尾。文件內容並沒有改變,除非你使用重定向存儲輸出。

功能:主要用來自動編輯一個或多個文件,簡化對文件的反覆操作,編寫轉換程序等

參考: http://www.gnu.org/software/sed/manual/sed.ht

2    :sed工具

用法:sed [option]... 'script' inputfile...

常用選項:

-n:不輸出模式空間內容到屏幕,即不自動打印,相當於把默認打印關閉啦

-e: 多點編輯

-f:/PATH/SCRIPT_FILE: 從指定文件中讀取編輯腳本

-r: 支持使用擴展正則表達式

-i.bak: 備份文件並原處編輯      

-i   直接刪除

 .bak   在刪除之前備份

script:(腳本)      sed 後面跟的腳本需加單引號   腳本里是地址和命令

'地址命令‘

3:sed工具

地址定界:

(1) 不給地址:對全文進行處理

(2) 單地址:   sed  -n ’2p‘  打印第二行         sed -n  '$p' 打印最後一行

#: 指定的行,$:最後一行

/pattern/:被此處模式所能夠匹配到的每一行

(3) 地址範圍:#,#      sed  -n   '1,3p' 打印第一行到第三行

#,+#               sed -n  ‘1,+3p’  第一行往後的三行,包括第一行

/pat1/,/pat2/   sed -n ‘/^s/,/^f/p’    etc    在etc裏找到以s開頭以f結尾的行找到並打印出來     注語法需按照這個來寫,否則無效

#,/pat1/        sed  -n    ‘3,/^f/p’    etc  在etc文件下從第3行開始打印並以f結尾的行結束

sed     -n  ‘2,20d;p’  刪除2到20行,別的行在打印出來

(4) ~:步進

1~2 奇數行      cat -n   /etc/passwd  |   sed -n   ‘1~2p'   每隔兩行開始打印   cat  -n  給每行標上數字

 2~2 偶數行

4: sed工具

 編輯命令:         sed  '2d'  /etc   刪除etc下的第二行

d: 刪除模式空間匹配的行,並立即啓用下一輪循環  

p:打印當前模式空間內容,追加到默認輸出之後

a [\]text:在指定行後面追加文本支持使用             a:追加

sed  '1,20ahahh’   在1到20中間追加字符hahh     如要用空個隔開需在a後加\        

\n實現多行追加

i [\]text:在行前面插入文本

sed  ‘\yao\a  hhhh’   f1  可在f1文件裏的yao下一行追加文件

c [\]text:替換行爲單行或多行文本

w /path/somefile: 保存模式匹配的行至指定文件

表示將/etc/fstab 中以UUID開頭的文本打印到f1中    且sed後加正則必須加‘/ /‘

r /path/somefile:讀取指定文件的文本至模式空間中匹配到的行後=: 爲模式空間中的行打印行號!:模式空間中匹配行取反處理

在/etc/fstab/目錄裏以UUID開頭的行後追加啦/etc/issue裏的文件內容

=: 打印行號     /正則表達式 /

!  取反     除UID之外別的行都寫行號

在etc下除啦第三行別的都打印    !          也可以用sed   ’3d‘刪除它

sed工具

s///:查找替換,支持使用其它分隔符,s@@@,s###

把root替換成大寫的root      

替換標記:

g: 行內全局替換

把passwd下所有小寫root替換成大寫    但它並沒有改文件,如果要改+   -i可以實現,     /支持正則表達式/支持分組

p: 顯示替換成功的行

w /PATH/TO/SOMEFILE:將替換成功的行保存至文件中


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