N25第八周學習總結_sed命令詳解

sed使用詳解

大綱:

1、    sed是什么

2、    為什么要使用sed

3、    sed使用方法

4、    sed詳解

 

正題:

1、    sed是什么

sed全名Stream Editor,是Linux下一條命令,也是文本處理三劍客之一的流編輯器,主要對行進行處理。

 

2、    為什么要使用sed

sed功能強大,使用靈活,而且支持正則表達式,不僅可對數據進行刪除、替換、修改、插入,而且可以通過地址定界來對范圍內的行進行編輯,大大提高了工作效能,省去手工操作的繁瑣與失誤率。

3、    sed使用方法

sed 主要由四部分組成:命令主體、選項、處理方式、待處理的文件,使用格式為:

        sed  [OPTIONS]  ‘SCRIPT’ 
FILE

4、    sed詳解

      N25第八周學習總結_sed命令詳解          

sed命令的使用格式:

  sed  [OPTION]  ‘SCRIPT’ 
FILE

 

OPTION:

     -n不輸出模式空間中未被匹配和默認輸出的內容至屏幕(只輸出匹配的內容)

     -e
script
實現多點編輯,即可增加多個’script’ 例如:

           sed -n  -e ‘/etc/s/fstab/FSTAB/’ -e ‘1~2p’ /etc/fstab

     -f
/PATH/SED_CRRIPT_FILE
從其他文件中讀取編輯命令,即讀取script

           注:寫有script的文件中不需要單引號,直接寫script。

     -r支持使用擴展表達式:默認只能用基本正則,使用-r后可以用擴展正則。

     -i直接編輯原文件,慎用。

 

‘SCRIPT’:

      SCRIPT由兩部分組成,地址定界+編輯命令;

          

           地址定界:主要來判定處理的行范圍,默認為全部

(1)   空地址:對全文進行處理

(2)   單地址:

#指定行

/pattern/:被此模式所匹配到的每一行;

(3)   地址范圍:

#, # :         從指定的行數到指定的行數;

#, +#     從指定的行數到幾行之后;

#, /parttern/ 從指定的行數到匹配到此模式的行;

/parttern1/, /parttern2/ 從匹配到1的模式的行到匹配到2的模式的行;

(4)   步進:

x~y:設x為起點,每次向前移動y步;

      例如:

1~2 : 所有的奇數行;

2~2 : 所有的偶數行;

      

                 編輯命令:主要作用是針對匹配到的數據該如何處理;

 

                      文本的刪除和顯示:

                      d刪除(行),主要針對行的刪除;

                      p顯示模式空間的內容,如果不加選項-n,匹配到模式空間的內容會重復顯示;

 

                      文本的添加和替換:

                            a
\text:
在指定或匹配行后面追加文本“text”,
支持使用\n實現多行追加

                             i \text 在指定或匹配行前追加文本“text”,支持使用\n實現多行追加;

                            c \text:  將指定或匹配的行替換為“text”,

                            s/// : 查找替換(行內編輯),支持基本正則表達式,可將查找出來的數據段替換、更改、刪除,其分隔符可自行設定,常用有:s@@@, s###

                                  g全局替換;默認只會替換匹配到的第一段數據;

                                  w /PATH/TO/SOMEFILE:將替換成功的結果保存至指定文件中;

                                  p顯示替換成功的行;

                                       注:使用方法同vim中命令模式中的查找替換。

 

                      文本的導入與導出:

                            w
/PATH/TO/SOMEFILE :
保存模式空間匹配到的行到指定文件中;

r /PATH/FROM/SOMEFILE讀取指定文件的內容至當前文件被模式匹配到的行后面;文件合并;

 

                      其他:

                            =為模式匹配到的行打印行號;

                            ?。?/b>條件取反,使用方法是在編輯命令前,沒有空格:

                                       sed
‘1~3!p’ /etc/fstab      

 

      綜合實戰:

以上是sed各參數的詳細說明,只用通過各種案例才能將sed命令牢牢掌握,以下是一些常用的使用方式:

 

                 1、刪除/boot/grub2/grub.cfg文件中所有以#開頭的行的行首的所有#號與空白字符;

            N25第八周學習總結_sed命令詳解

 

      2、刪除/etc/fstab/文件中的偶數行,并且在沒有#號的奇數行首加#;

            N25第八周學習總結_sed命令詳解

 

3、輸出一個絕對路徑給sed命令,取出其目錄,其行為類似于dirname

         echo /etc/httpd/conf/
|sed ‘s@[^/]\+/*$@@’

/etc/httpd/

 

 

     4、   nologin 的用戶信息導出至 /root/nologin.txt

N25第八周學習總結_sed命令詳解

 

 

   5、  /etc/fstab中所有以#開頭的行更改為#magedu.com

N25第八周學習總結_sed命令詳解

原創文章,作者:N25_韓奇洋,如若轉載,請注明出處:http://www.www58058.com/70097

(0)
N25_韓奇洋N25_韓奇洋
上一篇 2017-02-26 14:12
下一篇 2017-02-26 17:51

相關推薦

  • mysql主從復制

    MySQL主從復制        主從復制原理: mysql主從同步其實是一個異步復制的過程,要實現復制首先在master上開啟bin-log日志功能。整個過程需要開啟3個線程, 分別是master開啟IO線程,slave開啟IO線程和SQL線程. (1) 在slave服務器執行start…

    Linux干貨 2016-06-26
  • chmod 沒有執行權限的解決辦法 [轉載http://www.fblinux.com/?p=30]

    chmod沒有權限,貌似就算是root用戶也無法授權,這可咋辦?chmod是設置權限的命令,但是自身沒有了執行權限,那么就表示沒有辦法更改其他命令的權限,也沒有辦法改變自己的權限。 1 2 3 4 [root@localhost ~]# ll /bin/chmod ———-. 1 root root 48712 Oct 15 2014 …

    Linux干貨 2017-01-01
  • N25-第二周作業

    1、  Linux上的文件管理類命令都有那些,其常用的使用方法及其相關示例演示。 常用的管理類命令有:rm、mv、cp 1)         rm:remove rm [ OPTION ] FILE 常用選項:     &nbsp…

    Linux干貨 2016-12-13
  • 初探linux

    計算機的組成及其功能: 存儲器:    實現記憶功能的部件用來存放計算程序及參與運算的各種數據 運算器:    負責數據的算術運算和邏輯運算即數據的加工處理 控制器:    負責對程序規定的控制信息進行分析,控制并協調輸入,輸出操作或內存訪問 輸入設備:    實現計算程序和原始…

    Linux干貨 2016-10-29
  • 第三周作業

    1、列出當前系統上所有已經登錄的用戶的用戶名,注意:同一個用戶登錄多次,則只顯示一次即可。       首先用who命令列出當前系統上所有登陸用戶,然后使用cut命令以空格為分隔符取出第一列,再使用sort排序并去除重復的行        …

    Linux干貨 2017-01-18
  • linux用戶和組的配置文件

    1./etc/passwd:用戶及其屬性信息(用戶名,密碼,uid,gid,gecos注釋性描述信息,家目錄,登錄shell)在/etc/passwd文件中每個用戶都有一個對應的記錄行,它記錄了這個用戶的一些基本屬性。系統管理員經常會接觸到這個文件的修改以完成對用戶的管理工作。這個文件對所有用戶都是可讀的。      …

    2017-07-22

評論列表(1條)

  • 馬哥教育
    馬哥教育 2017-03-15 01:11

    贊~~思路比較清晰~后面操作的部分建議使用markdown來展示會更好~~加油

欧美性久久久久