sed命令詳解與樣本

來源:互聯網
上載者:User

sed命令詳解與樣本

grep命令的尋找功能,sed命令的流編輯功能和awk(現已發展成為一門程式設計語言)作為更強大的文本編輯命令,在Linux系統管理中,起著重要且全面的作用。而後來出現的perl程式設計語言(PracticalExtraction and Report Language),可以實現sed和awk的幾乎所有功能。但使用perl相對複雜和臃腫,因而sed和awk仍然活躍在shell編程的各個方面。

在sed命令中引入shell變數

Linux下Shell編程——sed命令基本用法

Unix文本處理工具之sed 

sed 進階用法

(1) sed是非互動編輯器,它按行處理對象檔案,但不修改處理檔案本身,而是逐行讀入檔案內容並在臨時緩衝區儲存副本並對其進行處理。處理完成每一行就將該行目標內容列印到螢幕,並將該緩衝區內容刪除,然後讀入下一行進行處理。另外需要注意的是,和grep不同,sed不論是否知道指定的模式,它的退出狀態都是0(Linux中通常代表真)。只有存在語法錯誤時,sed的退出狀態才不是0。

sed命令的一般格式為

sed [option]    ‘{ command}’  datafile

或者

sed [option]  -f    sed_script.sh    data_file

如果沒有輸入檔案,則sed將從標準輸入中接收輸入資料流。

(2)常用的sed option

-n取消預設輸出。sed命令預設列印輸入檔案的所有行的同時,再次列印匹配行內容。加上-n命令後,則只列印匹配命令中指明的pattern的行。

-e指定多個編輯命令。sed預設之接受一組命令,如果要指定多個命令,則需要使用-e選項指明各個命令。例如

sed -n -e '1,800{/pattern/p}'  -e  '1,800{/parttern/=}'  datafile

該命令使用-e指定兩個命令。前一個列印匹配pattern的行,後一個列印匹配pattern的行的行號。1, 800是定址條件,指明只查詢處理1到800行的資料。

(3)sed命令

命令p用於顯示sed處理的內容,常和-n選項一起使用,以取消預設列印操作,只列印選定內容。

命令d用於刪除匹配行。注意刪除的是緩衝區副本而非檔案本身。

sed ‘$d’ datafile
sed ‘/pattern/d’ datafile

第一條命令刪除檔案的最後一行($匹配最後一行),列印檔案的所有其它內容。第二條命令刪除匹配pattern的行,並列印其它所有行。
命令s用於替換指定內容。

sed ‘s/pattern/newconent/g’ datafile
sed  –n ‘1,20s/str$/newconent/gp’ datafile

第一條命令全域替換(g)檔案中符合pattern的字串為newconent。第二條命令處理1到20行內匹配以str結尾的行($匹配行尾),並把str更換為newcontent後列印匹配行。

上述例示中都以 / 作為匹配串和新字串的分隔字元,但實際上,可以指定其它分隔字元(分行符號、反斜線除外)。指定其它分隔字元時,可使用類似如下方式。

sed  ‘s#pattern#newcontent#g' datafile

上述命令指定#為分隔字元。

命令 r 為讀命令,使用該命令將另一個文字檔的內容加到當前檔案的特定位置上讀出。

sed  ‘/pattern/r input.txt’  datafile

如果在檔案datafile的某一行匹配到pattern,就在該行後讀入檔案input.txt的內容。該過程為全域型行為。

命令w為寫命令,將當前檔案的內容寫入到另一個檔案中。

更多詳情見請繼續閱讀下一頁的精彩內容:

  • 1
  • 2
  • 下一頁

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.