shell三劍客之sed

2021-10-04 12:37:44 字數 1411 閱讀 9135

sed命令是文字處理工具,讀取文字內容,根據指定的條件進行處理,對檔案內容進行增刪改查,常與正規表示式進行相互配合使用。

他是一種流編輯器,一次處理一行內容。處理時,把當前處理的行儲存在臨時緩衝區中,稱為「模式空間」(pattern space),接著用sed命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往螢幕。

-e指定要執行的命令,只有乙個命令可省略,多個執行命令需要新增

-n只輸出處理後的行

-i直接編輯原檔案,不輸出結果

條件可以為行數或者正規表示式、$,

操作p

輸出到螢幕

d刪除(整行)

s替換(字串)

c替換(整行)

r讀取指定檔案(到行後)

a追加指定內容到行後

i追加指定內容到行前

w另存為

n表示讀入到下一行內容

h複製到剪下板

g將剪下板中內容覆蓋到指定行

g將剪下板中內容追加到指定行後

例如【p列印】

sed -n '3p' test.txt                    #輸出第三行內容

sed -n '3,5p' test.txt #輸出第三行到第五行內容

sed -n 'p;n' test.txt #輸出奇數行內容

sed -n 'n;p' test.txt #輸出偶數行內容

sed -n '3,5' test.txt #輸出第三行到第五行奇數行內容(3,5行)

【s替換】

sed

's/a/a/g text,txt'

#將所有的小寫換為大寫a(不加g表示只替換每行的第乙個小寫a)

【c替換(整行)】

sed

'3,$c66666\n7777777' test.txt #把第3行到最後內容替換為兩行66666和7777777,\n為換行符

【r讀取指定檔案到行後】

sed

'3r /useradd.sh' test.txt #讀取useradd.sh內容追加到第三行後

【a追加指定內容到行後】【i追加指定內容到行前】(a與i用法相同)

sed

'/[0-9]/a----------' test.txt #在所有帶數字的行下新增-------

【w另存為】

sed

'1,9w out.txt' test.txt #將1-9行的內容另存為out.txt

shell三劍客之sed

sed options pattern filename引數說明 e 多點編輯 f 從指定檔案中讀取編輯 i.bak 備份,並對內容進行修改 n 取消自動列印 r 支援使用擴充套件正規表示式 v 顯示版本資訊 h 顯示幫助 動作說明 動作前面通常加一些匹配項 a 新增,a 後面可以接字串,而這些字串...

shell 三劍客(sed)用法

shell 三劍客 sed用法 string edit 流編輯器 sed 兩個空間 模式空間,保持空間 模式空間 sed處理文字內容行的乙個臨時緩衝區,模式空間中的內容會主動列印到標準輸出,並自動清空模式空間 保持空間 sed處理文字內容行的另乙個臨時緩衝區,不同的是保持空間內容不會主動清空,也不會...

Shell 指令碼三劍客之 sed詳解

shell指令碼三劍客,awk grep sed sed是乙個很好的檔案處理工具,本身是乙個管道命令,主要是以行為單位進行處理,可以將資料行進行替換 刪除 新增 選取等特定工作,下面先了解一下sed的用法 sed命令列格式為 sed nefri command 輸入文字 常用選項 n 使用安靜 si...