sed命令詳解及應用

sed

sed命令詳解及應用

sed是一種流編輯器,一次處理一行內容,把當前處理的內容存放在一個叫做“模式空間”的緩沖區中。能夠進行數據的替換、刪除、新增等。

語法結構:sed [option] script [file]

常用選項:

-n:禁止輸出模式空間中的內容

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

-e:指定多腳本運行(-e script1 -e script2…)

-f /path/to/scripts:從指定的腳本文件中讀取腳本并運行

-i:直接修改文件(即改即生效)

地址定界:

#:#表示數字,代表特定行

#1,#2:表示從#1行到#2行

/pattern1/,/pattern2/:表示從第一個匹配模式到第二個匹配模式中間的所有行

$:表示最后一行

/string/:表示被string匹配的所有的行

#,/pattern/:表示從第#行開始到被pattern匹配的行 中間所有的行

1~2:表示所有的奇數行

2~2:表示所有的偶數行

sed的編輯命令:

d:刪除模式空間中的行

=:為模式空間中的行加上行號

a \text1 \text2 …:在匹配文本所在行的后面追加內容

i \text1 \text2…:在匹配文本所在行前面加內容

c \text:用text文本替代模式匹配到內容所在的整行內容

p:打印模式匹配的行

s/sting1/string2/:用string來替換string1

g:全局替換

i:不區分大小寫

w /path/to/somefile:將匹配到的內容寫入文件

r /path/to/somefile:在文件的指定內容插入另一個文件的所有內容

 

應用示例:

  • 刪除/tmp/grub2.cfg文件中所有的行的行首的空白字符

sed ‘s/^[[:space:]]\+//g’ /tmp/grub2.cfg

  • 刪除/tmp/grub2.cfg中所有以#開頭,且后跟至少跟了一個空白字符的行的行首的#和空白字符

sed ‘s/^#[[:space:]]\+//g’ /tmp/grub2.cfg

  • 將/tmp/grub2.cfg文件中的奇數行另存為/tmp/grub3.cf

sed ‘1~2w /tmp/grub3.cfg’ /tmp/grub2.cfg

  • echo一個文件路徑給sed命令,取出其基名和取出其路徑名

echo “/etc/sysconfig/network-scripts/ifcfg-em1” | sed ‘s@^.*/\([^/]\+\)/\?$@\1@’

echo “/etc/sysconfig/network-scripts/ifcfg-em1” | sed ‘s@[^/]\+/\?$@@’

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

(7)
~~
上一篇 2018-03-13
下一篇 2018-03-14

相關推薦

  • 0812作業

    練習題 1、查找/var目錄下屬主為root,且屬組為mail的所有文件 ?2、查找/var目錄下不屬于root、lp、gdm的所有文件 ?3、查找/var目錄下最近一周內其內容修改過,同時屬主不為root,也不是postfix的文件 ?4、查找當前系統上沒有屬主或屬組,且最近一個周內曾被訪問過的文件 ?5、查找/etc目錄下大于1M且類型為普通文件的所有文…

    Linux干貨 2016-08-15
  • 2016/10/14作業

    2016/10/14作業: ##操作類: 1. 設置自己的終端提示符,要求字符終端登錄時: a> 需要帶顏色  b> 需要顯示當前執行到了第幾條命令  c> 顯示當前登錄終端,主機名和當前時間 答:要在用戶登錄時終端提示符,需要更改當前系統的環境變量: /etc/bashrc文件 #[ "$PS1" …

    Linux干貨 2016-10-19
  • 文件查找工具之——find

        前言:Linux一切皆文件,在linux的系統中如果我們需要找到所需的文件,除了一步一步慢慢找,還有一種辦法就是要使用Linux中查找文件工具命令,能讓我們很快定位到我們所需的文件。所以我們必須要學好文件查找工具 一、首先我們先要了解文本搜索和文件查找的區別     文本…

    Linux干貨 2015-07-06
  • 網絡配置之-nmcli

    使用nmcli配置網絡 NetworkManager是管理和監控網絡設置的守護進程,設備既就是網絡接口,連接是對網絡接口的配置,一個網絡接口可以有多個連接配置,但同時只有一個連接配置生效。 1 使用nmcli配置主機名 CentOS6 之前主機配置文件:/etc/sysconfig/network CentOS7主機名配置文件:/etc/hostname,默…

    Linux干貨 2017-05-07
欧美性久久久久