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...