Sed Sed:是一款流編輯工具,用來對文本進行過濾與替換工作,特別是當你想對幾十個配置文件進行統一修改時,你會體會到它的魅力;Sed通過一次僅讀取一行內容來對某 些指令進行處理後輸出,所以Sed更適合處理大數據文件;Sed通過文件或管道讀取文件內容,但它預設並不直接修改源文件,而是將讀入的內容複製 ...
=============Sed==================
Sed:是一款流編輯工具,用來對文本進行過濾與替換工作,特別是當你想對幾十個配置文件進行統一修改時,你會體會到它的魅力;Sed通過一次僅讀取一行內容來對某 些指令進行處理後輸出,所以Sed更適合處理大數據文件;Sed通過文件或管道讀取文件內容,但它預設並不直接修改源文件,而是將讀入的內容複製到緩衝區(模 式空間),然後根據相應的指令對緩衝區中的內容進行處理並輸出結果,預設輸出至標準輸出(即屏幕上);
一:Sed文本過濾工具,針對於行過濾:
(1)sed -n ‘xxp’
eg: sed -n ‘1p’ 列印第一行
sed -n ‘1,3p’ 列印1到3行
sed -n ‘1~2’ 列印奇數行,從第1行開始,每2行匹配一次操作地址
(2)sed -n ‘/^xxx/p’ 列印以xx開頭的行
sed -n ‘/xxx$/p’ 列印以xx結尾的行
(3)sed -e 可以執行相匹配的多個條件
sed ‘/^a/p;/^[0-9]/p’ ceshi.sh 可以用封號將多個指令隔開
eg: sed -e ‘/^a/p’ -e ‘/^[0-9]/p’
(4) sed -n ‘//=’ 顯示所匹配的行號
eg: sed -n ‘/^a/=’ ceshi.sh
(5) sed ‘//a ***’ 向匹配的行後追加內容,a後追加內容
sed ‘//i ****’ 向匹配的行前添加內容,i後為追加內容
sed ‘2a chehuiwei’ ceshi.sh 在第二行後追加
sed ‘3i chehuiwei’ ceshi.sh 在第三行前添加
sed ‘/ONBOOT/c ONBOOT=yes’ test.txt 將包含相關內容的行的內容更改
(6) sed -n ‘1,3!p’ 取反
(7)sed ‘1,2d’ ceshi.sh 刪除1到2行
sed ‘/^a/d’ ceshi.sh 刪除以a開頭的行
sed ‘/^$/d’ ceshi.sh 刪除文件中的空白行
(8) sed ‘s/舊的內容/替換的新內容/g’ ceshi.sh 替換
sed -n ‘1,2s/舊的內容/替換的新內容/p’ ceshi.sh 將前兩行列印出來並替換相關內容
sed ‘s/舊的內容/替換的新內容/n’ ceshi.sh 當一行中有多個要替換的內容時,n指定替換第幾個
grep -v ^$ ceshi.sh |sed 's/ru[1-3]/\<&\>/1;s/ru[1-3]/\<\/&\>/2' 用&來代替正則表達式匹配的內容
註意:如果規則表達式或替換字元串中有許多斜杠,則可以在s之後指定一個不同的字元來更改分割符:
eg: sed -e ‘s:/usr/local:/usr:g’ ceshi.sh 此時:是替換分隔符,sed會將/usr/local替換成/usr,e可加可不加
(9)sed -i 文件名稱 將更改內容寫入文件
eg: sed -i ‘s/舊的內容/新的內容/g’ ceshi.sh