第六課-第二講06_02_sed命令正則表達式
靈活按照咱們須要充分處理文件要掌握三大利器:grep,sed(流編輯器),awk(報告文本生成器)編輯器
1.sed的基本用法-sed=Stream Editor--操做純ascii的文本的,他是逐行處理文本的,因此也叫行編輯器(與之相對的叫全屏編輯器:vi)
sed工做機制:並不直接處理文本文件自己,而是每次讀取一行到內存空間,在內存中完成編輯,而且將編輯結果輸出到屏幕,將模式空間中的內容輸出到屏幕。這段內存空間叫sed的模式空間。默認狀況下不編輯原文件,僅對模式空間中的數據作操做
sed [option] {scripts} {file}
sed 'AddressCommand' file,file2,file3,.......
Address:
1)指定起止行,start_line,end_line ,如:1,100--第1行到第100行
2)/RegExp/使用模式,使用正則表達式的模式
/^root/
3)/pattern1/,/pattern2/ 這個文件當中第一次被pattern1模式1匹配到行開始到第一次被pattern2模式2匹配到的行結束中間的全部行
4)LineNumber 指定的行,$表示最後一行
5)StartLine,+N 從給定的起始行開始向後的N行ide
Command:
d:表示刪除符合條件的行
P:打印,顯示符合條件的行
a \string :在符合條件的行後面追加新行,內容爲string
i \string :在符合條件的行前面追加新行,內容爲string(\n 有將string 顯示爲兩行,其實\n就是換行符)
r FILE :將指定的文件的內容添加至符合條件的行處---合併文件
w FILE :將地址指定範圍的行另存至指定的文件中code
s/pattern/string/:查找並替換,默認替換每行中第一次被模式 匹配到的字符串(注意該string中不可用使用regexp),該行後面 還有符合匹配條件的也不去替換,要所有替換要加修飾符, 修飾符: g:全局替換 i:查找時忽略大小寫 sed的分隔符就是「/」,能夠用其餘的符號代替 s/// s### s@@@ &: 引用模式匹配整個串
Option
-n: 靜默模式,不顯示模式空間內容,只顯示命令處理結果
-i:直接修改原文件
-e SCRIPT -e SCRIPT -e SCRIPT :能夠同時執行多個腳本
-f /PATH/TO/SED_SCRIPT
sed -f /path/to/scripts file
-r:表示使用擴展正則表達式regexp