sed

用法:

sed? [選項]… ‘script’ inputfile

其中script是腳本基于sed語法的腳本 ? ? ? ? ? ? ? ? inputfile文件內容

常用選項

-n ? :不輸出模式空間內容到屏幕,即不自動打印

-e ? :多點編輯

-f ?? : ? /PATH/SCRIPT_FILE:從指定文件中讀取編輯腳本

-r ?? :支持擴展正則表達式

-i .bak :備份文件并原處編輯

把原文件做一個帶.bak的備份文件 ? ? ?? 然后就不怕對原文件修改出錯了

script ? :? 腳本包括兩部分 ?? 1 地址 ? ? 2 命令

‘地址命令’

? ? ? 地址定界

1不給地址 :? 對全文處理

2單地址

#:指定的行, ? 第#行 ? ?? $:最后一行

/pattern/: 被此處模式所匹配的行 ? ? ? ?? 模式就是關鍵字 詞 等

默認sed使用基本正則 ? ? /基本正則/

3地址范圍:

#,# ? ? ? ? ? ?? 從第#行 到 第#行

#, +# ? ? ? ? ?? 從第n行 到 第n+m行

/pat1/,/pat2/ ? ? ? ? ?? 從匹配模式1的行? 到? 匹配模式2的行

#,/pat1/ ? ? ? ? ? 從第#行 ? 到 ? 匹配模式1 的行結束

4~ :步進

1~2 ? 奇數行

2~2 ?? 偶數行

?? 編輯命令

d:刪除模式空間匹配的行,并立即啟用下一輪循環

p :打印當前模式空間的內容,追加到默認輸出之后

#sed ?? ‘2p’ ? ? ?? 文件 ? ? ? ? ? ? ? ?? 會打印兩遍第二行 ? ? 如果只想打印第二行可以

#sed ?? -n ?? ’2p‘ ?? 文件

a [\]text :在指定行后面追加文本

支持使用\n實現多行追加

i [\]text : 在行前面插入文本

#sed ?? ‘2,5i\ ? ?? ===’ ?? f1

c [\] texr: 替換行為單行或多行文本

w? /path/somefile :保存模式匹配的行至指定文件

把符合條件的行存到文件里

r /path/somefile? :讀取指定文件的文本至模式空間中匹配到的行后

=:為模式空間中的行打印行號 ? 只顯示行號

?。耗J娇臻g中匹配 行取反處理

?? 示例

sed ?? ‘2p’? /etc/passwd ? ? ? ? 顯示第二行 ? 但是會默認全打印所以有兩個第二行

sed ?? -n ? ‘2p’? /etc/passwd ? ? 與上一條相反 ? 只顯示第二行

sed ?? -n ? ‘1,4p’? /etc/passwd ? ? ? ? 只打印第一行到第四行

sed ?? -n ? ‘/root/p’? /etc/passwd ? ? ? 打印包含root的行

sed ?? -n ? ‘2,/root/p’? /etc/passwd ? 從2行開始? 到含有root的行

sed ?? -n ? ‘/^$/=’? file ? ? 顯示空行行號

sed? -n ?? -e ?? ‘/^$/p’ ? -e? ‘/^$/=’ ? ?? file ? ?? 空行顯示行號并把行也打印出來

sed ? ? ‘/root/a\superman’ ? ? /etc/passwd ? ? 行后 ? ? 在包含root的行后 打印字符串superman

sed ? ? ‘/root/i\superman’ ? ? /etc/passwd ? ?? 行前 ? ? ? ? ? ? ? ? ? ? ? ?? 行前

sed ? ? ‘/root/c\superman’ ? ? /etc/passwd? 代替行

sed ? ? ‘/^$/d’ ? ? ? file ? ? ? ?? 刪除空行

sed ? ‘1,10d’ ? ? ? file ? ? ? ? 刪除1到10行

nl ? /etc/passwd? |sed ? ‘2,5d’ ? ? ? ? 刪除第2行到第5行

nl ?? /etc/passwd? | sed? ‘2a? tea’ ? ? ? ?? 在第2行后面追加單詞 ? tea? 或字符 ? tea

sed ? ‘s/test/mytest/g’ ? example ? ? ? ? ?? 搜索 ?test ? ? ? ?? 替代 ?mytest

sed ?? -n ? ‘s/root/&superman/p’ ? /etc/passwd? 單詞后 ? ? 搜索 root? 替代rootsuperman ? ? ?? &相當于 表示前面的root

sed ? ? -n ?? ‘s/root/superman&/p’? /etc/passwd? 單詞前

sed ? ? -e ?? ‘s/dog/cat/’ ? ? ? ? -e ? ?? ‘s/hi/lo/’ ? ?? pets ? ? ? ? 多點替換

sed ? ?? -i.bak ? ? ‘s/dog/cat/g’ ? ? ?? pets ? ? ? ? ? 把文件改了

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/95889

(0)
lhl123456lhl123456
上一篇 2018-04-14 11:02
下一篇 2018-04-14 15:31

相關推薦

欧美性久久久久