sed命令的用法
sed
的基本命令
:1.
替換: s命令
1.1 基本用法
如: sed 's/day/night/'new
該例子將檔案 old 中的每一行第一次出現的 day 替換成 night, 將結果輸出到檔案 new
s " 替換 " 命令
/../../ 分割符 (delimiter)
day 搜尋字串
night 替換字串
其實 , 分割符 "/" 可以用別的符號代替 , 比如 ",", "|" 等 .
如:sed's/\/usr\/local\/bin/\/common\/bin/'new
等價於 sed 's_/usr/local/bin_/common/bin_' new
顯然 , 此時用 "_" 作分割符比 "/" 好得多
1.2 用 & 表示匹配的字串
有時可能會想在匹配到的字串周圍或附近加上一些字元 .
如: sed 's/abc/(abc)/' new
該例子在找到的 abc 前後加上括號 .
該例子還可以寫成 sed's/abc/(&)/' new
下面是更複雜的例子 :
sed 's/[a-z]*/(&)/' new
sed 預設只替換搜尋字串的第一次出現 , 利用 /g 可以替換搜尋字串所有
$ sed's/test/mytest/g' example-----在整行範圍內把test替換為mytest。如果沒有g標記,則只有每行第乙個匹配的test被替換成mytest。
$ sed's/^192.168.0.1/&localhost/' example-----&符號表示替換字串中被找到的部份。所有以192.168.0.1開頭的行都會被替換成它自已加 localhost,變成192.168.0.1localhost。
$ sed 's#10#100#g' example-----不論什麼字元,緊跟著s命令的都被認為是新的分隔符,所以,「#」在這裡是分隔符,代替了預設的「/」分隔符。表示把所有10替換成100。
如果需要對同一檔案或行作多次修改,可以使用 "-e" 選項
2.
刪除行:d命令
從某檔案中刪除包含
"how"
的所有行
將/etc/passwd的內容顯示並找印行號,同時將2~5刪除
附:nl命令在
linux
系統中用來計算檔案中行號。nl
可以將輸出的檔案內容自動的加上行號
如果只要刪除第2行,可以使用nl /etc/passwd |sed '2d' 來達成,至於若是要刪除第 3 到最後一行,則是nl /etc/passwd | sed '3,$d'的啦。
3.增加行:a命令(在指定的行後新增)或i命令(在指定的行前新增)
a的後面可以接字串,而這些字串會在新的一行出現
在/etc/passwd的第二行後增加「***xx」字樣的新行
在/etc/passwd的第二行前增加「***xx」字樣的新行
如果要同時新增多行,則每行之間要用反斜槓\來進行新行的新增
4、取代行:c命令
c的後面可以接字串,這些字串可以取代n1,n2之間的行
5、列印:p命令
sed'/north/p' datafile 預設輸出所有行,找到north的行重複列印
sed –n '/north/p'datafile 禁止預設輸出,只列印找到north的行
nl/etc/passwd | sed -n '5,7p' 僅列出/etc/passwd檔案中的第5~7行內容
注:sed的-i選項可以直接修改檔案中的內容
6
.擴充套件:
呼叫sed
有三種方式: l
在命令列鍵入命令 l
將sed
命令插入指令碼檔案,然後呼叫
sed l將
sed命令插入指令碼檔案,並使
sed指令碼可執行。
a、使用sed
命令列格式為:
sed[
選項]
sed命令 輸入檔案。
記住在命令列使用
sed命令時,實際命令要加單引號。
sed也允許加雙引號。
b、使用
sed
sed[
選項]-f sed指令碼檔案輸入檔案
c、要使用第一行具有
sed命令直譯器的
sed
sed指令碼檔案 [選項
] 輸入檔案
不管是使用
shell
命令列方式或指令碼檔案方式,如果沒有指定輸入檔案,
sed從標準輸入中接受輸入,一般是鍵盤或重定向結果。
sed選項如下:
-f, --filer=script-file
引導sed指令碼檔名
綜合舉例:
通過sed指令碼對test.txt進行處理,test.txt檔案內容如下:
顯示結果如下:
現在檢視其具體功能。
第一行是
sed命令解釋行。指令碼在這一行查詢
sed以執行命令,這裡定位在
/bin。
第二行以
/company/
開始,這是附加操作起始位置。a\
通知sed
這是乙個附加操作,首先應插入二個新行。 第
三、四行是附加操作要加入到拷貝的實際文字。
這裡只舉例通過sed指令碼增加新行的操作,有關sed的其他操作大家要會舉一反三。
sed命令用法
接著用sed命令處理快取區的內容,處理完成後,把快取區的內容送往螢幕。接著處理下一行,這樣不斷重複,直到 檔案末尾。檔案內容本身並沒有改變。使用sed命令有2種形式 1.sed options commamd file 2.sed options f script file 例子 sed 2d te...
sed命令的基本用法
sed stream editor 是流編輯器,可對文字檔案和標準輸入進行編輯。sed只是對快取區中的原始檔案的副本進行編輯,並不編輯原始的檔案,如果需要儲存改動內容,可以選擇使用重定向和w編輯命令。呼叫sed有三種方法 1.在shell命令列輸入命令呼叫sed,格式為 sed 選項 sed命令 輸...
sed 命令的高階用法
d 刪除 p 顯示模式空間的內容 a text 在行後面追加文字 支援使用 n實現多行追加 i text 在行前面插入文字 支援使用 n實現多行插入 c text 替換行為單行或多行文字 w path to somefile 儲存模式空間匹配到的行至指定檔案中 r path from somefil...