Linux四劍客詳解教程 sed

2021-09-19 10:39:44 字數 2096 閱讀 4147

sed

1.sed

1.1認識sed

sed 是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行儲存在臨時緩衝區中,稱為「模式空間」(patternspace ),接著用sed 命令處理緩衝區中的內容,處理完成後,把緩衝區的內容送往螢幕。然後讀入下行,執行下乙個迴圈。如果沒有使諸如『d』 的特殊命令,那會在兩個迴圈之間清空模式空間,但不會清空保留空間。這樣不斷重複,直到檔案末尾。檔案內容並沒有改變,除非你使用重定向儲存輸出或-i。

功能:主要用來自動編輯乙個或多個檔案, 簡化對檔案的反覆操作

1.2使用sed

1.2.1 常用選項options

-n:不輸出模式空間內容到螢幕,即不自動列印,只列印匹配到的行

-e:多點編輯,對每行處理時,可以有多個script

-f:把script寫到檔案當中,在執行sed時-f 指定檔案路徑,如果是多個script,換行寫

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

-i:直接將處理的結果寫入檔案

-i.bak:在將處理的結果寫入檔案之前備份乙份

1.2.2位址定界

。 #: 指定的行

。 /pattern/:被此處模式所能夠匹配到的每一行

~:步進

。sed -n 『1~2p』 只列印奇數行 (1~2 從第1行,一次加2行)

。sed -n 『2~2p』 只列印偶數行

1.2.3 編輯命令command

d:刪除模式空間匹配的行,並立即啟用下一輪迴圈

p:列印當前模式空間內容,追加到預設輸出之後

a:在指定行後面追加文字,支援使用\n實現多行追加

i:在行前面插入文字,支援使用\n實現多行追加

c:替換行為單行或多行文字,支援使用\n實現多行追加

w:儲存模式匹配的行至指定檔案

r:讀取指定檔案的文字至模式空間中匹配到的行後

=:為模式空間中的行列印行號

!:模式空間中匹配行取反處理

s///:查詢替換,支援使用其它分隔符,如:s@@@,s###;

加g表示行內全域性替換;

在替換時,可以加一下命令,實現大小寫轉換

\l:把下個字元轉換成小寫。

\l:把replacement字母轉換成小寫,直到\u或\e出現。

\u:把下個字元轉換成大寫。

\u:把replacement字母轉換成大寫,直到\l或\e出現。

\e:停止以\l或\u開始的大小寫轉換

1.3 sed用法演示

1.3.1 常用選項options演示

1.[root@along ~]# cat demo

2.aaa

3.bbbb

4.aabbccdd

5.[root@along ~]# sed 「/aaa/p」 demo #匹配到的行會列印一遍,不匹配的行也會列印

6.aaa

7.aaa

8.bbbb

9.aabbccdd

10.[root@along ~]# sed -n 「/aaa/p」 demo #-n不顯示沒匹配的行

11.aaa

12.[root@along ~]# sed -e 「s/a/a/」 -e 「s/b/b/」 demo #-e多點編輯

13.aaa

14.bbbb

15.aabbccdd

16.[root@along ~]# cat sedscript.txt

17.s/a/a/g

18.[root@along ~]# sed -f sedscript.txt demo #-f使用檔案處理

19.aaa

20.bbbb

21.aabbccdd

22.[root@along ~]# sed -i.bak 「s/a/a/g」 demo #-i直接對檔案進行處理

23.[root@along ~]# cat demo

24.aaa

25.bbbb

26.aabbccdd

27.[root@along ~]# cat demo.bak

28.aaa

29.bbbb

30.aabbccdd

shell四劍客之sed

格式 sed nefri 動作 其中n e f r i 動作有a,i,c,p,s n 預設把sed命令執行的結果,與原來的資料一起輸出到螢幕,如果加了 n,則只顯示sed處理後的內容 sed n 1p sed.txt a 在匹配的當前行的後面新增內容,add sed ahelloworld sed....

shell四劍客之sed

sed是乙個非互動式文字編輯器,它一次處理一行內容。作用 編輯乙個或多個檔案,簡化對檔案的反覆操作 編寫轉換程式等 在處理文字時把當前處理的行儲存在臨時緩衝區中,稱為 模式空間 緊接著用sed命令處理緩衝區中的內容,處理完後把緩衝區的內容輸出至螢幕或寫入檔案。預設輸出到螢幕的文字已經修改,但檔案內容...

Linux四劍客之awk和sed

做資料統計,檔案日誌分析 基本操作 1 列印檔案中的某一列 awk test.txt 2 列印檔案的最後一列 awk test.txt 3 列印檔案的第一列並且擷取冒號之前的 awk f etc passwd head 5 4 列印檔案的第一列和最後一列並且擷取冒號之前的 awk f etc pas...