Linux sed用法總結 個人

2021-10-24 04:37:23 字數 1962 閱讀 9987

sed在處理文字時是逐行讀取檔案內容,讀到匹配的行就根據指令做操作,不匹配就跳過。

一 sed總體概述

sed是linux下一款功能強大的非互動流式文字編輯器,可以對文字檔案進行增、刪、改、查等操作,支援按行、按欄位、按正則匹配文字內容,靈活方便,特別適合於大檔案的編輯。本文主要介紹sed的一些基本用法,並通過shell指令碼演示sed的使用例項。

1.sed的使用方法,呼叫sed 命令的語法有兩種:

1)在命令列指定sed指令對文字進行處理:sed +選項  『指令』 檔案

2) 先將sed指令儲存到檔案中,將該檔案作為引數進行呼叫:sed   +選項  -f  包含sed指令的檔案  檔案

sed的常用選項:

-i:直接對內容進行修改,不加-i時預設只是預覽,不會對檔案做實際修改

-n:取消預設輸出,sed缺省會輸出所有文字內容,使用-n引數後只顯示處理過的行

a:追加  向匹配行後面插入內容

c:更改  更改匹配行的內容

i:插入  向匹配行前插入內容

d:刪除  刪除匹配的內容

s:替換  替換掉匹配的內容

p:列印  列印出匹配的內容,通常與-n選項和用

=:用來列印被匹配的行的行號

n:讀取下一行,遇到n時會自動跳入下一行

二 sed命令示例

(1)向檔案中新增或插入行

sed '3ayou are handsome' test_ww.txt   #向第三行加內容(you are handsome) 3表示行號 a表示追加

執行命令後,如圖

sed '/wangwei/ahello' test_ww.txt #向內容wangwei後面新增hello,如果檔案中有多行包括wangwei,則每一行後面都會新增

sed  '$ahi'  test_ww.txt  #在最後一行新增hi,$匹配最後一行

sed '3ihi'  test_ww.txt    #在第三行之前插入hi

示例2:更改檔案中指定的行

sed  '1ctesthi'  test_ww.txt  #將檔案test_ww.txt的第一行替換為testhi,1表示行號,c表示為替換動作

sed  '/wangwei/clinyong'  test_ww.txt  #將包含wangwei的行替換為linyong

sed '$ckeep'  test_ww.txt  #將最後一行替換為keep

示例3:刪除檔案中的行

sed  '2d'  test_ww.txt    #刪除第二行

sed '1~2d' test_ww.txt   #從第一行開始刪除,每隔2行就刪掉一行,即刪除奇數行

sed   '1,2d'  test_ww.txt   #刪除1~2行

sed  '1,2!d'  test_ww.txt   #刪除1~2之外的所有行

sed  '/hello/d'   test_ww.txt   #刪除匹配hello的行

sed  '/wangwei/,$d'  test_ww.txt  #刪除從匹配wangwei的行到最後一行

sed  '1,3'   test_ww.txt     #刪除1~3行中,匹配內容wangwei的行,1,3表示匹配1~3行,表示刪除匹配wangwei的行

sed  '/^$/d'    test_ww.txt    #刪除空行

示例4:替換檔案中的內容

sed  's/hello/hello world/'   test_ww.txt   #將檔案中的hello替換為hello world,預設只替換每行第乙個hello

sed  's/hello/hello world/g'  test_ww.txt #將文字中所有的hello都替換為hello world

sed 's/^#.*//'  test_ww.txt      #將1.txt檔案中以#開頭的行替換為空行,即注釋的行  ( ^#)表示匹配以#開頭,(.*)代表所有內容

最後,總結一下shell本身擷取字串的一些方法

linux sed命令 用法

sed是乙個很好的檔案處理工具,本身是乙個管道命令,主要是以行為單位進行處理,可以將資料行進行替換 刪除 新增 選取等特定工作,下面先了解一下sed的用法 sed命令列格式為 sed nefri command 輸入文字 常用選項 n 使用安靜 silent 模式。在一般 sed 的用法中,所有來自...

linux sed學習總結

sed 基本用法 最終列印 列印出模式空間中的經過處理後剩下的文字 man sed sed option addresscommand file.n 靜默模式,只顯示符合條件的行 i 直接修改原始檔 會修改到原檔案,注意 e script e script 同時執行多個指令碼 f path to s...

linux sed命令的用法

sed基本用法 sed stream editor 行編輯器 全屏編輯器 vi sed 模式空間 預設不編輯原檔案,僅對模式空間中的資料做處理 而後,處理結束後,將模式空間列印至螢幕 sed options addresscommand file n 靜默模式,不再預設顯示模式空間中的內容 i 直接...