shell四劍客之sed

2021-08-07 07:07:48 字數 2466 閱讀 6899

格式:sed [-nefri] [動作]

其中n/e/f/r/i

動作有a,i,c,p,s

-n 預設把sed命令執行的結果,與原來的資料一起輸出到螢幕,如果加了-n,則只顯示sed處理後的內容

sed -n '1p' sed.txt

a 在匹配的當前行的後面新增內容,add

sed '/******/ahelloworld' sed.txt world後面有符號/則會直接顯示出來

i 在匹配的當前行的上面新增內容,insert

sed '/beautiful/ihelloyou' sed.txt

& 在當前行匹配字串的行尾新增字串

sed 's/than/&hellworld/' sed.txt 則直接在than的後面新增字串hellworld

c 把該行替換成c後面的字串

sed '2,4c hello world' sed.txt 2-4行的內容替換成hello world

s 舊字元替換新字元,行數s/舊字串/新字串/g

sed 's/than/hello/' sed.txt

sed 's/than/hello/g' sed.txt

sed '2s/than/hahaha/' sed.txt 匹配第二行的

sed '2,4s/than/hahaha/' sed.txt 匹配第二行到第四行的

/pa/s/pa1/pa2/ 查詢包含pa的行,然後把該行的第乙個匹配pa1的字串替換為pa2

/pa/s/pa1/pa2/g 查詢包含pa的行,然後把該行所有的匹配pa1的字串替換為pa2,g即代表global

sed '/beautiful/s/than/hahaha/' sed.txt

sed '/beautiful/s/than/hahahah/g' sed.txt

sed '/by/s/^/hello/' sed.txt 在包含by行的頭加上hello

sed '/by/s/^/&hello/' sed.txt

p 輸出,預設

sed '1,3p' sed.txt 顯示匹配的1-3行內容和原來內容

sed -n '1,3p' sed.txt 只顯示匹配行的內容

sed -n '2p;$p' sed.txt 顯示第二行和最後一行的內容,中間用分號隔開,多行可以sed -n '2p;3p;$p' sed

d 刪除

sed '/start/ ,/end/d' file 刪除包含第start行到第end行之間的所有行內容

sed '/start/, 8d' file 刪除包含第start行到第八行的內容

sed '1d' sed.txt 刪除第一行

sed '2,3d' sed.txt 刪除第二到三行

sed '/******/,$d' sed.txt 刪除匹配行到最後一行

-e 多個命令組合,對檔案內容執行多條sed命令條件

sed -e '/******/s/better/worse/' -e '/flat/s/better/good/' sed.txt

; 多個命令組合,注意引號位置

sed -e '/complex/s/than/less/ ; /flat/s/than/well/' sed.txt

變數引用,需要先設定變數,不能用系統變數

abc=123

sed "s/******/$abc/g" sed.txt

-i 把sed命令修改的結果直接寫入到檔案裡去,一般用來編輯檔案內指定內容,螢幕不輸出內容

如果要對所做的修改儲存到原檔案,則要加上-i,就會直接修改原檔案內容

sed -i '/bash/s/bin/sbin/' sed.txt

-f 指定執行sed指令碼的檔名,可以把常用的或者是command比較長的內容寫到乙個檔案中

vim sedcommand

s/******/difficult/

sed -f sedcommand sed.txt

另外可以在乙個檔案裡填寫多個條件,然後分別匹配

vim sedcommand

s/******/difficult/

1p-r 支援擴充套件正規表示式的語法,預設是基礎正規表示式

演示例子

cat sed.txt

the zen of python, by tim peters

beautiful is better than ugly.than

explicit is better than implicit.

****** is better than complex.

complex is better than complicated.

flat is better than nested.

sparse is better than dense.

/sbin/bash

shell四劍客之sed

sed是乙個非互動式文字編輯器,它一次處理一行內容。作用 編輯乙個或多個檔案,簡化對檔案的反覆操作 編寫轉換程式等 在處理文字時把當前處理的行儲存在臨時緩衝區中,稱為 模式空間 緊接著用sed命令處理緩衝區中的內容,處理完後把緩衝區的內容輸出至螢幕或寫入檔案。預設輸出到螢幕的文字已經修改,但檔案內容...

shell程式設計四劍客之SED

sed options commands filename sed工具預設處理文字,文字內容輸出螢幕已經修改,但是檔案內容其實沒有修改,需要加 i引數即對檔案徹底修改 x x為指定行號 x,y 指定從x到y的行號範圍 pattern 查詢包含模式的行 pattern pattern 查詢包含兩個模式...

shell三劍客之sed

sed命令是文字處理工具,讀取文字內容,根據指定的條件進行處理,對檔案內容進行增刪改查,常與正規表示式進行相互配合使用。他是一種流編輯器,一次處理一行內容。處理時,把當前處理的行儲存在臨時緩衝區中,稱為 模式空間 pattern space 接著用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的...