sed工具

sed是一種流編輯器,它是文本處理中非常中的工具,能夠完美的配合正則表達式使用,功能不同凡響。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern
space),接著用sed命令處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾。文件內容并沒有
改變,除非你使用重定向存儲輸出。Sed主要用來自動編輯一個或多個文件;簡化對文件的反復操作;編寫轉換程序等。

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

sed工具

sed-e: 多點編輯,對每行處理時,可以有多個Script

sed工具

sed-f: 把Script寫到文件當中,在執行sed時-f 指定文件路徑,如果是多個Script,換行寫

sed工具

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

sed工具

sed -i: 直接將處理的結果寫入文件,源文件會被更改 建議在將處理的結果寫入文件之前備份一份

sed工具


地址定界:
(1) 不給地址:對全文進行處理
    sed -n ‘p’ 文件

sed工具

(2) 單地址:
    #: 指定的行
    sed -n ‘2p’ 文件

sed工具

    /pattern/:被此處模式所能夠匹配到的每一行
    sed -n ‘/^1/p’文件

sed工具

(3) 地址范圍:
    #,#

sed -n ‘1,3p’

sed工具
    #,+#
    sed -n ‘2,+1p’

sed工具

    /pat1/,/pat2/
    sed -n ‘/redhat/,/linux/p’

sed工具

    #,/pat1/
    sed -n ‘2,/linux/p‘

            同上

(4) ~:步進
    sed -n ‘1~2p’  只打印奇數行

    sed -n ‘2~2p’  只打印偶數行

sed工具

編輯命令

d: 刪除模式空間匹配的行,并立即啟用下一輪循環
    sed ‘2d’ 文件

sed工具

p:打印當前模式空間內容,追加到默認輸出之后
    sed ‘2p’ 文件

sed工具

a [\]text:在指定行后面追加文本,支持使用\n實現多行追加

sed ‘2a\123\n456\n789’ 文件

sed工具

i [\]text:在行前面插入文本
    sed ‘2i\123\n456\n789’ 文件

sed工具

c [\]text:替換行為單行或多行文本
    sed ‘2c\123\n456\n789’ 文件

sed工具

w /path/somefile: 保存模式匹配的行至指定文件
    sed -n ‘3w /root/3.file’ 文件

sed工具

r /path/somefile:讀取指定文件的文本至模式空間中匹配到的行后
    sed ‘3r /root/mage.txt’ 文件

sed工具

=: 為模式空間中的行打印行號
    sed ‘=’ 文件

sed工具

!:模式空間中匹配行取反處理
    sed -n ‘2!p’ 文件

sed工具
s///:查找替換,支持使用其它分隔符,s@@@,s###替換標記:

sed工具

g: 行內全局替換

    sed ‘s/dog/cat/g’ 文件

sed工具

原創文章,作者:李先生,如若轉載,請注明出處:http://www.www58058.com/85389

(0)
李先生李先生
上一篇 2017-08-26
下一篇 2017-08-26

相關推薦

  • 更改CentOS7 默認網卡eno16777736為eth0

        安裝完CentOS7,它的默認網卡名為eno16777736 看著不爽!習慣了eth0的命名方式。 編輯 /etc/sysconfig/grub 在“GRUB_CMDLINE_LINUX”里添加net.ifnames=0 biosdevname=0 保存退出 如圖: 然后執行 grub2-mkconfig -o…

    系統運維 2015-12-19
  • Linux基礎知識之軟硬鏈接

    系統環境:    該博文以CentOS6.8_x86_64系統為基礎,Xshell5遠程登錄CentOS6.8系統,以root身份登錄系統。 為什么要學習符號(軟)鏈接和硬鏈接?    符號(軟)鏈接和硬鏈接是Linux文件系統中的一個重要的概念,軟硬鏈接的學習過程中會涉及一些文件系統中的索引節點(inode),索引節…

    Linux干貨 2016-08-02
  • 軟件包管理

    軟件運行環境 ABI(應用程序的二進制接口):Application Binary Interface Windows 與Linux 不兼容 ELF(Executable and Linkable Format)           —&…

    Linux干貨 2017-04-23
  • N26 第七周作業

    1、創建一個10G分區,并格式為ext4文件系統;(1) 要求其block大小為2048, 預留空間百分比為2, 卷標為MYDATA, 默認掛載屬性包含acl; [root@localhost ~]# fdisk /dev/sdb Welcome to fdisk (util-linux 2.23.2). Changes will remain in mem…

    Linux干貨 2017-02-07
  • corosync v2 + pacemaker + crmsh 實現mariadb高可用

    高可用mariadb拓撲圖 一、設計前提     1、時間同步 # ntpdate 172.16.0.1 或者 # chronyc sources     2、所有的主機對應的IP地址解析可以正常工作, 主機名要與命令#uname -n 所得的結果一致   &…

    Linux干貨 2014-08-13
  • Ansible淺談

    ansible特性:         模塊化,調用特定的模塊,完成特定的任務;         基于Python語言實現,由Paramiko、PyYAML和Jinja2三個關鍵模塊;         部署簡單,agentless; &nbs…

    Linux干貨 2016-12-15
欧美性久久久久