linux之sed敕令的用法。本站提示廣大學習愛好者:(linux之sed敕令的用法)文章只能為提供參考,不一定能成為您想要的結果。以下是linux之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 就是啦!
舉例:(假定我們有一文件名為ab)
刪除某行
[root@localhost ruby] # sed '1d' ab #刪除第一行
[root@localhost ruby] # sed '$d' ab #刪除最初一行
[root@localhost ruby] # sed '1,2d' ab #刪除第一行到第二行
[root@localhost ruby] # sed '2,$d' ab #刪除第二行到最初一行
顯示某行
. [root@localhost ruby] # sed -n '1p' ab #顯示第一行
[root@localhost ruby] # sed -n '$p' ab #顯示最初一行
[root@localhost ruby] # sed -n '1,2p' ab#顯示第一行到第二行
[root@localhost ruby] # sed -n '2,$p' ab#顯示第二行到最初一行
應用形式停止查詢
[root@localhost ruby] # sed -n '/ruby/p' ab #查詢包含症結字ruby地點一切行
[root@localhost ruby] # sed -n '/\$/p' ab#查詢包含症結字$地點一切行,應用反斜線\屏障特別寄義
增長一行或多行字符串
[root@localhost ruby]# cat ab
Hello!
ruby is me,welcome to my blog.
end
[root@localhost ruby] # sed '1a drink tea' ab #第一行後增長字符串"drink tea"
Hello!
drink tea
ruby is me,welcome to my blog.
end
[root@localhost ruby] # sed '1,3a drink tea' ab #第一行到第三行後增長字符串"drink tea"
Hello!
drink tea
ruby is me,welcome to my blog.
drink tea
end
drink tea
[root@localhost ruby] # sed '1a drink tea\nor coffee' ab #第一行後增長多行,應用換行符\n
Hello!
drink tea
or coffee
ruby is me,welcome to my blog.
end
取代一行或多行
[root@localhost ruby] # sed '1c Hi' ab#第一行取代為Hi
Hi
ruby is me,welcome to my blog.
end
[root@localhost ruby] # sed '1,2c Hi' ab#第一行到第二行取代為Hi
Hi
end
調換一行中的某部門
格局:sed 's/要調換的字符串/新的字符串/g' (要調換的字符串可以用正則表達式)
[root@localhost ruby] # sed -n '/ruby/p' ab | sed 's/ruby/bird/g' #調換ruby為bird
[root@localhost ruby] # sed -n '/ruby/p' ab | sed 's/ruby//g'#刪除ruby
拔出
[root@localhost ruby] # sed -i '$a bye' ab #在文件ab中最初一行直接輸出"bye"
[root@localhost ruby]# cat ab
Hello!
ruby is me,welcome to my blog.
end
bye