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 19:51
下一篇 2018-03-14 14:46

相關推薦

  • 硬鏈接和軟鏈接的說明

    1、硬鏈接和軟鏈接的區別    (1)、原理上:                   【1】 硬鏈接(hard link):                 &…

    2017-07-21
  • Homework Week-2 Linux文件管理

    1、Linux上的文件管理命令都有哪些,其常用的使用方法及其相關示例演示。 文件管理工具:cp, mv, rm         cp命令:copy  源文件  目標文件                單源復制:cp [O…

    Linux干貨 2016-08-22
  • 磁盤管理

    linux的哲學思想:一切皆文件; 設備類型: 塊(block):隨機訪問,交換數據單位是“塊”; 字符(character):線性訪問,數據交換單位是“字符”; 設備文件:FHS /dev     設備文件:關聯至設備驅動程序;設備的訪問入口;       &nbsp…

    Linux干貨 2016-08-30
  • 淺談Android應用HTTP框架選型

    我們知道,Android應用主要是通過客戶端-服務器的方式進行數據交互,一般在APP開發時可能是一個接口對應一個顯示模塊,這樣的設計會讓客戶端更新時很麻煩。為了解決這個問題,通常的做法是和服務端之間定義協議,設計顯示模式,進而達到實時更新UI界面的目的,增加或刪除顯示模塊時不需要讓用戶手動更新apk,這種方法最常見的就是在做活動或者廣告的時候用到。以我們的優…

    2016-06-22
  • Python from entry to abandon 3

        第十章的內容是解決問題————編寫一個Python腳本。在我的電腦上因為Zip命令不能正常工作所以無法給出演示。該章給出了很有意義的編程思路,對以后學習和工作都有不錯的參考意義,這部分有興趣的同學還是自己去看原版教程吧。    這篇博客結合個人筆記整理了《簡明Python教程》第十一章到第十…

    Linux干貨 2017-04-07
  • grub安裝

    創建兩塊磁盤分區 創建boot目錄和根本目錄rootfs mkdir /mnt/boot mkdir /mnt/rootfs mount /dev/sdb1 /mnt/boot mount /dev/sdb2 /mnt/rootfs 安裝gurb gurb-install –root-directory=/mnt /dev/sdb1 在/mnt/…

    Linux干貨 2017-11-14
欧美性久久久久