Linux sed命令用法


概述

sed命令是一個面向字符流的非交互式編輯器,不允許用戶與它進行交互操作。sed是以行為單位處理文本內容的。在shell中,可以批量修改文本內容。

用法

sed [選項] [動作]

選項與參數:
-n :使用安靜(silent)模式。在一般 sed 的用法中,所有來自 STDIN 的數據一般都會被列出到終端上。但如果加上 -n 參數后,則只有經過sed 特殊處理的那一行(或者動作)才會被列出來。
-e :直接在命令列模式上進行 sed 的動作編輯;
-f :直接將 sed 的動作寫在一個文件內, -f filename 則可以運行 filename 內的 sed 動作;
-r :sed 的動作支持的是延伸型正規表示法的語法。(默認是基礎正規表示法語法)
-i :直接修改讀取的文件內容,而不是輸出到終端。

function:
a :新增行, a 的后面可以是字串,而這些字串會在新的一行出現(目前的下一行)
c :取代行, c 的后面可以接字串,這些字串可以取代 n1,n2 之間的行
d :刪除行,因為是刪除,所以 d 后面通常不接任何參數,直接刪除地址表示的行;
i :插入行, i 的后面可以接字串,而這些字串會在新的一行出現(目前的上一行);
p :列印,亦即將某個選擇的數據印出。通常 p 會與參數 sed -n 一起運行
s :替換,可以直接進行替換的工作,通常這個 s 的動作可以搭配正規表示法,例如 1,20s/old/new/g 一般是替換符合條件的字符串而不是整行

 示例

1、刪除行

sed 'm,nd' test.xx     

d是刪除的意思,刪除text.txt文件的m到n行,若n是$,則刪除m及其后面所有行。

 sed '/m/d' test.xx 

  正則表達式,刪除text.txt文件的包含“m”的所有行,若是/^m/意思為刪除m開頭的行。

 

2、查看某幾行

sed -n '1,4p' test.sh 

查看test.sh文件1~4行

 

3、修改文件內容

sed -i “s/原字符串/新字符串/g”  ./test.sh

修改test.sh文件中字符串

 

sed正則中的元字符

sed中的命令前面可以使用地址范圍進行限制,表示對文件的某些符合條件的行執行相應的操作,其中我們可以使用正則表達式選出要操作的行,而sed中正則的語法可能與我們其他命令的正則語法有一些不同,這里我們有必要列出sed中常用的正則元字符:

$ 表示行尾 
^ 表示行首
[a-z0-9]表示字符范圍
[^]表示除了字符集中的字符以外的字符 

sed的正則中  \(\)  和 \{m,n\} 需要轉義 
. 表示任意字符  
* 表示零個或者多個  
\+ 一次或多次  
\? 零次或一次    
\| 表示或語法

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM