SED命令用法整理

2021-09-08 01:19:57 字數 1816 閱讀 8288

sed '/started/'q  匹配到started字串則退出sed命令

sed '/started/'  同時匹配到started和in兩個字元時則退出sed命令

sed是乙個很好的檔案處理工具,本身是乙個管道命令,主要是以行為單位進行處理,可以將資料行進行替換、刪除、新增、選取等特定工作,下面先了解一下sed的用法

sed命令列格式為:

sed [-nefri] 『command』 輸入文字        

常用選項:

-n∶使用安靜(silent)模式。在一般 sed 的用法中,所有來自 stdin的資料一般都會被列出到螢幕上。但如果加上 -n 引數後,則只有經過sed 特殊處理的那一行(或者動作)才會被列出來。

-e∶直接在指令列模式上進行 sed 的動作編輯;

-f∶直接將 sed 的動作寫在乙個檔案內, -f filename 則可以執行 filename 內的sed 動作;

-r∶sed 的動作支援的是延伸型正規表示法的語法。(預設是基礎正規表示法語法)

-i∶直接修改讀取的檔案內容,而不是由螢幕輸出。       

常用命令:

a   ∶新增, a 的後面可以接字串,而這些字串會在新的一行出現(目前的下一行)~

c   ∶取代, c 的後面可以接字串,這些字串可以取代 n1,n2 之間的行!

d   ∶刪除,因為是刪除啊,所以 d 後面通常不接任何咚咚;

i   ∶插入, i 的後面可以接字串,而這些字串會在新的一行出現(目前的上一行);

p  ∶列印,亦即將某個選擇的資料印出。通常 p 會與引數 sed -n 一起運作~

s  ∶取代,可以直接進行取代的工作哩!通常這個 s 的動作可以搭配正規表示法!例如 1,20s/old/new/g 就是啦!

顯示某一時間段的內容行

sed -n '/nov 20 21:00:00/,/nov 21 22:00:00/p'  haproxy.log

sed -n '/[0-9]/p' 

注釋以logfile開頭的行

sed -i

's/^\(logfile .*\)$/# \1/' /etc/redis/redis.conf 

修改某行的內容

sed -i  '

3s#.*#

baseurl='  /etc/yum.repos.d/epel.repo

刪除指定的行

sed -i  '

4d' /etc/yum.repos.d/epel.repo

修改以某字元開頭的行的部分內容

sed -i  '/^tcpaddr/'  /etc/clamd.conf

修改以某字元開頭的整行的內容

sed -i  '/^#clientaliveinterval

/cclientaliveinterval 60' /etc/ssh/sshd_config

清除檔案或某段內容中的

空格,不包括空行

sed  s/[[:space:]]//g

在一檔案中指定的字元後插入內容,可以插入空格。&就是前面匹配的部分

sed -i 's/指定的字元/&要插入的字元/'  檔案

刪除/etc/hosts檔案中包含archive.cloudera.com的行

舉個例子 file 內容:

aa|bb|cc|dd|dd|ee|ff

我要替換第5個|後邊的內容

# sed 's/[^|]\+/yy/5' file

aa|bb|cc|dd|yy|ee|ff

sed命令用法

接著用sed命令處理快取區的內容,處理完成後,把快取區的內容送往螢幕。接著處理下一行,這樣不斷重複,直到 檔案末尾。檔案內容本身並沒有改變。使用sed命令有2種形式 1.sed options commamd file 2.sed options f script file 例子 sed 2d te...

sed命令基本用法

sed是乙個飛互動式文字編輯器 sed只對緩衝區中原始檔案的副本進行編輯,並不編輯原始的檔案 呼叫sed的方法 在shell命令列輸入命令呼叫sed,格式為 sed 選項 sed命令 輸入檔案 sed 選項 f sed指令碼檔案 輸入檔案.sed 指令碼檔案 輸入檔案第 種方式的sed指令碼檔案與第...

sed命令基本用法

1 sed stream editor 行編輯器。工作原理 預設不編輯原始檔,僅僅對模式空間的資料做處理。一行行將檔案讀入模式空間,處理完後再將模式空間的內容輸出一遍。sed和grep awk編輯器都是shell程式設計中的重要工具。2 sed語法 sed option addresscommand...