Linux中的sed 命令

2021-10-08 03:19:16 字數 1903 閱讀 9530

sed本身是乙個逐行處理工具,會逐行處理到檔案的結束。預設情況下不修改原始檔,因為sed是將原始檔內容逐行copy到乙個臨時緩衝區(模式空間),對其進行編輯,行處理結束後,將其輸出到螢幕上,也可以通過資料重定向將結果匯入到新的檔案中去。

sed本身提供修改原始檔的選項。但是如果修改原始檔時,結果內容並不會傳送到螢幕上。

2.1語法:

sed  [option]  "[action]"  [filename]
2.2選項

-e允許對輸入資料應用多條sed命令進行編輯。

-i表示直接操作原始檔

2.3動作

s:字串匹配/查詢

i:插入

a:追加

d:刪除

c:替換

注意:選項和動作的字母i不是同樣的功能

原始檔內容(demo):

hello  teduhadoop

hello  hadoop

hello  hdfs ,hi  sed

1、將全文的h替換為h。

# bash

sed "s/h/h/g" demo

2、修改全文的h/h,第乙個l/l

# bash

sed -e "s/h/h/g" -e "s/l/l/1" demo

or# 多條指令的另外一種寫法:

sed "s/h/h/g;s/l/l/1" demo

3、修改全文的第乙個和第二個h/h

# bash

sed "s/h/h/1;s/h/h/1" demo

4、部分檔案中,由於不知道是第幾行,且檔案中存在多個相同的字串時,如何修改。

# eth0檔案內容:

將檔案中的onboot=no修改為onboot=yes

# bash

sed -i "s/onboot=no/onboot=yes/g" eth0

5、在檔案中進行插入新的內容:

原始檔內容:

hello  teduhadoop

hello  hadoop

hello  hdfs ,hi  sed

5.1、在第一行插入內容"hello bigdata"

# bash

sed "1 i hello bigdata" demo

5.2、在第一行追加內容"hello 小強"

# bash

sed "1 a hello 小強" demo

6、刪除匹配的行

# bash

sed "/hdfs/d" demo

表示將匹配的到hdfs的整行刪除,如果匹配的內容是h的話,當前檔案的內容會被全部刪除。

演示案例:

1.demo.txt中有如下內容

2.執行如下語句將所有小寫h和小寫的l都替換為大寫

3.如下語句是將每行的第乙個和第二個小寫h 換成大寫h(因為sed是按照行讀取,下面指令是多條sed命令,按照順序執行)

4.如下語句是將每行的第乙個和第三個小寫h 換成大寫h

5.語句中也可以用 | 分割

linux中的sed命令

昨天我學習了awk,今天來學習一下sed sed是乙個管線命令,可以分析standard inputer,並且能對資料進行取代,新增,刪除,擷取特定行等功能。sed nefri 動作 n 使用安靜 silent 模式。一般在sed中所有來自stdin的資料一般都會被列出在熒幕上,但如果加上 n引數後...

linux中的sed 命令

sed的基本語法 sed hnv e script f script檔案 文字檔案 引數說明 h或 help 顯示幫助 n或 quiet或 silent 僅顯示script處理後的結果 v或 version 顯示版本資訊。e script 或 expression script 以選項中指定的scr...

Linux中sed命令用法

定址 可以通過定址來定位你所希望編輯的行,該位址用數字構成,用逗號分隔的兩個行數表示以這兩行為起止的行的範圍 包括行數表示的那兩行 如1,3表示1,2,3行,美元符號 表示最後一行。範圍可以通過資料,正規表示式或者二者結合的方式確定 sed命令 呼叫sed命令有兩種形式 sed options co...