歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> linux基礎命令之sed

linux基礎命令之sed

日期:2017/3/3 12:18:06   编辑:Linux技術

什麼是sed?

sed是一個流編輯器,英文全名為stream editor,流的意思就是能處理文件或者通過管 道傳輸來的數據。主要針對行,也就是行編輯。默認是不編輯文件的,處理時,把當前 處理的行存儲在臨時緩沖區中,稱之為模式空間(pattern space),接著用sed命令處理 緩沖區中的內容,處理完成後,默認把緩沖區的內容送往至屏幕,接著處理下一行。僅 對模式空間中的數據做處理,處理結束後將模式空間打印至屏幕

·sed的用法

sed [options] ‘AddressCommand’ file

options

-e SCRIPT 可以同時執行多個addresscommand,sed -e …… -e ……

-n 靜默模式,不顯示模式空間中的內容

-i 直接修改原文件

-r sed默認不支持擴展的正則表達式,-r則支持

-f 執行指定文件,該文件內容為addresscommand的一系列格式

address

1 startline,overline 用逗號分割

2 /pattern/ 用正則表達式即可

3 /pattern1/,/pattern2/ 第一次被模式匹配的行開始,到第一次被模式2匹配到的行 結束

4 linenumber 指定的行,其中$表示最後一行。

5 startline +n 從指定行開始,向後的n行,共n+1行。

command 若有多個命令用;分開d 刪除符合條件的行

p 輸出行,n和p一起用表示只打印那些發生變換的行

a\ 在當前行下面插入文本

i\ 在當前行上面插入文本

q 退出sed

n 讀取下一行,用下一個命令處理新行,而不是第一個命令。

a(此處有空格)\’string’ 在指定的行後追加新行,內容為string

i(此處有空格)\’string’ 行前

r(此處有空格)file 將指定文件內容添加至符合條件的每行後面,可用來將兩個 文件合並

w(此處有空格)file 指定范圍內行另存為指定文件中。

s/// /pattern/string/修飾符 查找pattern並替換為string,默認只替換每行中第一次 被匹配到的字符串。/可以用@ #等代替。

修飾符 g 全局替換

i 忽略大小寫

假設處理的文本為test.file

在每行的頭添加字符,比如"HEAD",命令如下:

sed 's/^/HEAD&/g' test.file

在每行的行尾添加字符,比如“TAIL”,命令如下:

sed 's/$/&TAIL/g' test.file

在指定行的末尾添加內容: Cat file

Aaaa Bbbb

Cccc Sed ‘s/cc.*/& eeee/g’ file

Copyright © Linux教程網 All Rights Reserved