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...