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
下一篇 2018-04-14

相關推薦

  • linux學習練習

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其它用戶均沒有任何訪問權限。[root@localhost etc]# cp -r /etc/skel /home/tuser1[root@localhost ~]# getfacl /home/tuser1/getfacl: Removing lead…

    Linux筆記 2018-07-15
  • ssh等

    SSH端口轉發 SSH會自動的加密和解密所有SSH客戶端與服務器之間的網絡數據;同時也可以將其他TCP端口的數據加密轉發,這一過程叫“隧道”,這樣也可以減少防火墻開啟的端口。 實現過程是數據首先通過連接本機的某一個端口,被當做ssh協議數據發送給ssh服務器,ssh服務器解密再發給遠程主機的端口 本地轉發: -L localport:remotehost:r…

    2018-05-28
  • keepalived之ipvs-dr

    keepalived初試

    2018-07-15
  • 如何在虛擬機上安裝centos6系統

    VMware Workstation ?是一款功能強大的桌面虛擬計算機軟件,提供用戶可在單一的桌面上同時運行不同的操作系統,以及可便于攜帶的虛擬機器, ?下圖以VMware14.1.1版本為例: 第一步打開VMware并選擇創建新的虛擬機。 第二步此處我們選擇典型配置,并開始下一步 第三步選擇稍后安裝操作系統并開始下一步 第四步:選擇liux操作系統,版本號…

    2018-03-29
  • Linux系統MBR的修復方法

    grub boot loader

    2018-05-09
欧美性久久久久