程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> 關於C++ >> linux之sed敕令的用法

linux之sed敕令的用法

編輯:關於C++

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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved