Linux Sed 命令的總結

2021-09-28 11:40:43 字數 2771 閱讀 7637

sed是一種流編編器,它是文字處理中非常中的工具,能夠完美的配合正規表示式便用,功物能不同凡響。

處理時,把當前處理的行儲存在臨時緩衝區中,稱為」模式空間」( oattern space),接看用sed命令處理緩衝區中的內容,處理成後,把緩衝區的內容送往螢幕顯示。

接著理下一行,這樣不斷重複,直到檔案末。檔案內容沒有改改變,除非使用了寫入的命令,將內容更新。

sed 的功能很強大在 指令碼中 獲取檔案的列印,追加,替換 ,刪除

我舉幾個我常用的幾個方法場景

列印對應檔案第三行

sed -n '3p' /var/log/yum.log
只檢視檔案的第3行到第9行

sed -n '3,9p' /var/log/yum.log
過濾特定字串,顯示正行內容

sed -n  '/root/p' yum.log
顯示包含"hhh"的行到包含"omc"的行之間的行

sed -n '/hhh/,/omc/p' yum.log
僅僅顯示匹配字串的行號

sed -n '/root/p' yum.log

這裡需要分析一下 首先 -i 的含義是說是插入的模式 -e 代表多編輯意思,就是說同時修改不同位置檔案。 「 1 i 」 1 的意思代表第一行 i 表示插入,他會插入第一行位置,如果是a 他會插入在第一行的末尾 , 『 $ a』 $是正規表示式中的一種,表示所有,這個請小夥伴補充一下,正則的知識

在檔案第一行和第四行的每行下面新增hahaha

sed '1,4i hahaha' yum.log
有人會想在檔案的倒數第二行新增內容實現的方法

sed '$i 你要新增的內容'  group.xml
sed -i 's/root/world/g' yum.log
把 檔案中的 root 替換 為 world /g是全域性的意思 s 查詢的意思

sed -i '5,10 s/root/ftl/g' yum.log
替換 5 到 10 行的 root 變為ftl

刪除 3 行到9 行

sed  -i '3,9d' /var/log/yum.log
刪除包含"hhh"的行到包含"omc"的行之間的行

sed -i '/hhh/,/omc/d' yum.log

命令  功能

a\  在當前行後新增一行或多行。多行時除最後一行外,每行末尾需用「\」續行

c\  用此符號後的新文字替換當前行中的文字。多行時除最後一行外,每行末尾需用"\"續行

i\  在當前行之前插入文字。多行時除最後一行外,每行末尾需用"\"續行

d   刪除行

h   把模式空間裡的內容複製到暫存緩衝區

h   把模式空間裡的內容追加到暫存緩衝區

g   把暫存緩衝區裡的內容複製到模式空間,覆蓋原有的內容

g   把暫存緩衝區的內容追加到模式空間裡,追加在原有內容的後面

l   列出非列印字元

p   列印行

n   讀入下一輸入行,並從下一條命令而不是第一條命令開始對其的處理

q   結束或退出sed

r   從檔案中讀取輸入行

!   對所選行以外的所有行應用命令

s   用乙個字串替換另乙個

g   在行內進行全域性替換

w   將所選的行寫入檔案

x   交換暫存緩衝區與模式空間的內容

y   將字元替換為另一字元(不能對正規表示式使用y命令)

p==print

d:delete

=:列印匹配行的行號

-n 取消預設的完整輸出,只要需要的

-e 允許多項編輯

-i 修改檔案內容

-r 不需要轉義

注意:& 符號在sed命令中代表上次匹配的結果

1 .   替換 [ ] 時 

你想把中括號替換,它是乙個不折不扣的叛徒,它需要轉義才行 例:

sed 's/\[/aaa/g'
2. 替換(){}時,則不需要

3   記得字元轉義

linux sed命令的用法

sed基本用法 sed stream editor 行編輯器 全屏編輯器 vi sed 模式空間 預設不編輯原檔案,僅對模式空間中的資料做處理 而後,處理結束後,將模式空間列印至螢幕 sed options addresscommand file n 靜默模式,不再預設顯示模式空間中的內容 i 直接...

linux sed 命令的使用

首先可以在在linux 使用man sed 個人建議,盡可能去理解man sed 的內容 sed命令列格式為 sed nefri command 輸入文字 檔案 常用選項 n 取消預設的輸出,使用安靜 silent 模式。在一般 sed 的用法中,所有來自 stdin的資料一般都會被列出到螢幕上。但...

Linux sed命令的使用

1.功能簡介 sed stream editor 是一種流檔案編輯器,它一次處理一行內容。處理時,把當前處理的行儲存在臨時緩衝區中,稱為 模式空間 pattern space 接著用sed命令處理緩衝區中的內容,kzkomrid處理完成後,把緩衝區的內容送往螢幕,接著處理下一行,直到檔案末尾。檔案內...