探索處理文本工具“sed”的相關奧妙

一:sed工具

1,set的介紹:sed是一種流編輯器,它一次處理一行內容。處理時,把當前 處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern
space),接著用sed命令處理緩沖區中的內容,處理完成后
,把緩沖區的內容送往屏幕。然后讀入下行,執行下一個循
環。如果沒有使諸如‘D’的特殊命令,那會在兩個循環之間
清空模式空間,但不會清空保留空間。這樣不斷重復,直到
文件末尾。文件內容并沒有改變,除非你使用重定向存儲輸
出。 

它的功能:主要用來自動編輯一個或多個文件,簡化對文件的反復操作,編寫轉換程序等。

2,sed的用法:

sed -n 不輸出模式空間內容到屏幕,既不自動打印
-e 多點編輯,對每行處理時,可以有多個script
-f 把script寫到文件中,在執行sed時-f指定文件路徑,如果是多個script,換行寫

  -r 

支持正則表達式

-i 直接將處理的結果寫入文件
-i 文件名 在將處理結果寫入文件之前備份一份

script
地址的定界:

(1)不給地址,對全文進行處理

           sed -n ‘p’ 文件

(2)單地址:

           #:指定行

           sed -n ‘2p’ 文件: 指定文件的第二行內容

           /pattern/:被此處模式所能夠匹配到的每一行

            sed -n ‘/nihao/p’ 文件:顯示文件中匹配到帶有nihao的一行

(3) 地址范圍:

         #,#

       sed -n ‘1,5p’ 文件:顯示文件中一到五行的信息

        #,#+

       sed -n ‘1,+2p’ 文件:顯示文件中第一行和第三行的信息

      /part1/,/part2/

       sed -n ‘/n/,/m/’ 文件 :顯示文件中第n到m行的信息

(4)~表示步進

sed -n ‘1~2p’ 只顯示奇數行

sed -n ‘2~2p’ 只顯示偶數行

編輯的命令:

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

sed ‘2d’ 文件名 :刪除文件中第二行的內容

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

a[\]txt :在指定行后面追加文本,可以使用\n實現多行追加

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

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

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

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

相關示例:

1、刪除centos7系統/etc/grub2.cfg文件中所有以空白開頭
的行行首的空白字符

探索處理文本工具“sed”的相關奧妙
2、刪除/etc/fstab文件中所有以#開頭,后面至少跟一個空
白字符的行的行首的#和空白字符

探索處理文本工具“sed”的相關奧妙
3、處理/etc/fstab路徑,使用sed命令取出其目錄名和基名

探索處理文本工具“sed”的相關奧妙

4、利用sed 取出ifconfig命令中本機的IPv4地址

探索處理文本工具“sed”的相關奧妙

5、統計centos安裝光盤中Package目錄下的所有rpm文件的以.分隔倒數第二個字段的重復次數

探索處理文本工具“sed”的相關奧妙

6、統計/etc/init.d/functions文件中每個單詞的出現次數,并排序(用grep和sed兩種方法分別實現)

探索處理文本工具“sed”的相關奧妙

第二種方法:
探索處理文本工具“sed”的相關奧妙

原創文章,作者:風之軌跡,如若轉載,請注明出處:http://www.www58058.com/85418

(0)
風之軌跡風之軌跡
上一篇 2017-08-26 17:44
下一篇 2017-08-26 18:08

相關推薦

  • linux上的LVM簡明教程

    LVM是一個多才多藝的硬盤系統工具。在Linux上非常的好用,傳統分區使用固定大小分區,重新調整大小十分麻煩。但是,LVM可以創建和管理“邏輯”卷,而不是直接使用物理硬盤??梢宰尮芾韱T彈性的管理邏輯卷的擴大縮小,操作簡單,而不損壞已存儲的數據。可以隨意將新的硬盤添加到LVM,以直接擴展已經存在的邏輯卷。 首先是實際的物理磁盤及其劃分的分區和其上的物理卷(PV…

    Linux干貨 2017-05-02
  • 網絡班22期+第二周作業練習

    常用的文件管理命令: ls,顯示文件或目錄 -l:顯示文件或目錄的包括權限、屬主、屬組大小創建日期等詳細信息 [root@centos7 ~]# ls -l total 16 -rw-r–r–. 1 root root   64 Aug&nbsp…

    Linux干貨 2016-09-05
  • 馬哥教育網絡班20期+第二周課程練習

    1、Linux上的文件管理類命令都有哪些,其常用的使用方法及其相關示例演示。 文件管理有 cp, mv, rm  復制命令:cp [root@ddwhost ~]# cp /etc/magic /tmp/         cp&n…

    Linux干貨 2016-06-23
  • 讀寫執行權限對文件和目錄的影響

    權限的作用 對于linux運維工作來說,熟練掌握文件管理技能是非常重要的,所謂“一切皆文件”,控制住文件的權限,可以說也就控制住了linux系統。而且,運維的工作要和成千上萬的文件打交道,對于文件屬性的熟識程度對于工作的順利開展有著深遠的影響。綜上,了解文件,熟悉文件,掌握文件,是我們運維的一個重要的課程。 不同權限對文件和目錄的影響 首先,我們現對權限進行…

    Linux干貨 2017-07-30
  • sed之高級命令的解析

                sed工作機制中另一個邏輯空間用于作為模式空間的好幫手,就是叫保持空間(hold space),在模式空間中處理一行內容會繼續處理下一行,那么對于處理過的行可能還有其他處理,因此可以先把處理好的數據存放在hold s…

    Linux干貨 2016-08-08
欧美性久久久久