sed用法例項 (內容不全)

2021-07-22 05:33:51 字數 3196 閱讀 7975

sed用法例項

1.替換命令

s ,不改變原來檔案

sed '

s

/book/bookall/' mysed

sed -n 's/book/bookall/' mysed

-n 單獨使用不會輸出任何內容

sed 's/book/bookall/p' mysed

p 單獨使用,就是預設輸出

sed -n 's/book/bookall/p' mysed

-n ,p 一起使用,只輸出改變的行

sed -i 's/book/bookall/' mysed

-i aix  不支援 

2. g

全面替換標誌

sed '

s

/book/bookall/g' mysed  

預設是全面替換

sed 's/book/bookall/

100

' mysed  

從第n處開始替換 ,注意 ,不帶g 

// 在sed 中叫界定符 也可以是其他的 如 : or |

sed '/\/youbook/mybook/' 

'' 內部出現界定符時候需要轉義 

3. 刪除操作 d 命令

sed '/^$/

d' mysed

刪除空白行 

sed '4d' mysed

刪除檔案的第4行

sed '2,$d' mysed

刪除 2 到行尾的所有行

sed '$d' mysed

刪除最後一行

sed '/^book/'d  mysed or 

sed '/^book/d' mysed

刪除所有book 開頭的行

已匹配字串標記&

echo this is my first learning of sed | sed 's/\w\+/[&]/g'

正規表示式 \w\+ 匹配每乙個單詞,使用【&】替換它,&對應之前匹配到的每乙個單詞 (aix 好像不行)

sed 's/^book/& of mathbook/' mysed

works

子串匹配標記 \1 

echo this is digit 7 in a number | sed 's/digit \([0-9]\)/\1/'

用匹配的子串做替換

左邊命令中digit 7  被替換成了 7 ,樣式匹配到的是子串是7,\(...)\用於匹配子串,對於匹配到的第乙個子串標記為 \1,依次類推 \2

echo a b | sed 's/\([a-z]\) \([a-z]\)/\2 \1/'

a b 位置調換,a b 如果是單詞 ?

sed -n 's/^\(book\)/\1s/p' mysed

book 在開始位置,被標記為 \1

組合表示式

sed '表示式1' | sed  '表示式2'  等價於

sed '表示式1;表示式2'

test=hello

echo hello world  | sed "s/$test/hello/"

sed 表示式可以使用單引號做引用,但是如果表示式內部包含變數字串,就需要使用雙引號

選定行的範圍 ,(逗號)

sed -n '/mybook/,/fine/p' mysed

所有在模版 mybook 和 check 所確定的範圍內的行都被列印

sed -n '5,/^fine/p' mysed

列印從第五行開始到第乙個包含以fine開始的行之間的所有行

sed -n '/mybook/,/fine/s/$/aaa ccc/p' mysed

對於模版 mybook 和 fine之間的行,每行的末尾用字串aaa ccc替換

多點編輯 e 命令 

sed -e '1,5d' -e 's/book/****book/' mysed

-e 選項允許在同一行裡執行多條命令,命令的執行順序對結果有影響

從檔案讀入 r 命令 

sed '/fine/r readfile' mysed

把從 readfile 裡面讀取的內容追加到fine 後面的一行

寫入檔案 w 命令

sed -n '/fine/w writefile' mysed

把從mysed 找到含有 fine 行的資料寫入到 writefile 中

追加(行下) a\ 命令

sed '/^fine/a\this is my line' mysed

將 this is my line 追加到fine 開始的行的下面 not wokrs 

sed -i '2a\this is my food' mysed

將 this is my line 追加到第二行的下面 not wokrs 

插入行上 i\ 

sed '/^fine/i\this is your prite' mysed

在以fine 開頭的行上插入一行

sed -i '5i\this is your sis' mysed

下乙個命令 n

sed '/fine/' mysed

如果fine 命令匹配,則移動到匹配的下一行,替換(注意,不能有空格)

變形 y 

sed '1,10y/igjieo/sdddd/' mysed

把 1 到 10 行 中的小寫字母替換大寫  not works

推出 q 命令 

sed '5q' mysed

輸出5行後退出

指令碼 scriptfile

sed -f scriptfile file(s)

sed 指令碼是乙個sed 的命令清單,啟動sed 時 以 -f 選項引導指令碼檔名。sed 對於指令碼中命令非常挑剔,在命令列的末尾不能有空白和文字,如果在一行中多個命令,以分號分割,以#開頭的為注釋行。

列印奇數行 偶數行

sed -n 'p;n' mysed

sed -n 'n;p' mysed

sed -n '1~2p' mysed

sed -n '2~2p' mysed

有道筆記中副本

shell 檔案內容替換 sed用法

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!呼叫sed命令有兩種形式 sed options command file s sed options f scriptfile file s 刪除 d命令 sed 2d example 刪除example檔案的第二行。sed 2,d exampl...

Shell 檔案內容替換 sed用法

sed是乙個很好的檔案處理工具,本身是乙個管道命令,主要是以行為單位進行處理,可以將資料行進行替換 刪除 新增 選取等特定工作,下面先了解一下sed的用法。呼叫sed命令有兩種形式 sed options command file s sed options f scriptfile file s ...

shell學習 sed用法的例項

替換文字中的字串 sed s book books file n選項和p命令一起使用表示只列印那些發生替換的行 sed n s test test p file sed i s book books g file使用字尾 g 標記會替換每一行中的所有匹配 sed s book books g fil...