Linux文字處理「三劍客」之sed

2021-09-21 12:30:46 字數 1833 閱讀 4074

sed(stream editor)是乙個行編輯工具。下面我們介紹 sed 的實現原理和基本使用方法。

一、sed 的處理文字的流程

基本處理流程如下:

處理流程是:每次讀入文字檔案的一行到記憶體中的模式空間中,在模式空間中處理後將處理的結果輸出,缺省會列印到螢幕上。因此,預設情況下,不會改變原檔案的內容。

二、sed 命令的使用

基本語法:sed [options]... '位址定位 編輯命令' file...

位址定位的方法:

1、行定位:

start_line[,end_line]

2、模式匹配

/pattern1/,/pattern2/ 第一次被pattern1匹配到的行開始,到第一次被pattern2匹配到的行結束之間的所有行

/pattern/ 被pattern匹配到的行

3、沒有位址定界,代表的是全文。

常用引數:

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

-r: 支援使用擴充套件正規表示式

-i: 修改原檔案;

-e: sed -e "" -e "" -e "", sed ""

-f: -e的功能差不多,只是將多個com寫到檔案中區。

編輯命令:命令可在之前加!取反

p:列印    

例如:列印 /etc/fstab 檔案的 3 到 5 行

如果不加 -n 的話,會是什麼效果呢?

這就是 sed 處理流程所決定的,一般 p 命令與 -n 引數一起使用,才能達到想要的效果。

d: 刪除

i \text: 行上方,text即為插入的內容

a \text: 行下方,text即為插入的內容

r /path/from/some_file: 把符合條件的行讀到指定檔案中

w /path/to/some_file: 把符合條件的行儲存至指定的檔案中

=: 顯示符合條件行的行號

s///: s@@@ 查詢替換

g,i:g是全文替換,i忽略大小寫

1

2

[root@server ~]# sed -e '/^#/d'  -e 's/\(id:\)[0-9]\(:initdefault:\)/\13\2/' /etc/inittab

id:3:initdefault:

基本用法應經介紹完畢,最主要的的如何使用正規表示式來定位位址範圍。

Linux文字處理三劍客

grep 作用 文字搜尋工具,根據使用者指定的 模式對目標檔案逐步進行匹配檢查,列印匹配到的行 grep root etc passwd grep命令選項 grep user etc passwd v 顯示不被pattern 匹配的行 e 僅顯示匹配到的字串 grep user etc passwd...

linux文字處理三劍客

常用引數 v 顯示不能夠被匹配到的行 i 忽略大小寫字元 o 僅顯示匹配到的字串 q 靜默模式,不輸出任何資訊 a 後 行 b 前 行 c 前後各 行 e 使用ere,相當於egrep常用引數 n 只列印模式匹配的行 e 直接在命令列模式上進行sed動作編輯,此為預設選項 f 將sed的動作寫在乙個...

文字處理三劍客

文字處理三劍客 劍客一 grep 作用 行 過濾 用法 grep 正規表示式 檔案 路徑 grep e 擴充套件類正規表示式 檔案 路徑 劍客二 sed 用法 sed 選項 位址定位sed命令 檔案 路徑 sed 選項 正規表示式 sed命令 檔案 路徑 sed 選項 位址定位 正規表示式 sed命...