sed編輯器

sed: Stream EDitor, 行編輯器; 

用法:

sed [option]… ‘script’ inputfile…

script:

地址命令 

常用選項:

-n:不輸出模式中的內容至屏幕;

-e: 多點編輯;

-f /PATH/TO/SCRIPT_FILE: 從指定文件中讀取編輯腳本;

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

-i: 原處編輯;

例一:,刪除文件已UUID開關的命令行

[root@localhost ~]# sed '/^UUID/d' /etc/fstab 

地址定界:

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

(2) 單地址:

#: 指定的行;

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

(3) 地址范圍:

#,#

#,+#

/pat1/,/pat2/

#,/pat1/

(4) ~:步進

1~2

2~2

例一:指定第一行到第10行刪除

[root@localhost ~]# sed '1,10d' /etc/fstab 

編輯命令:

d: 刪除

p: 顯示模式空間中的內容

a \text:在行后面追加文本;支持使用\n實現多行追加;

i \text:在行前面插入文本;支持使用\n實現多行插入;

c \text:替換行為單行或多行文本;

w /path/to/somefile: 保存模式空間匹配到的行至指定文件中;

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

=: 為模式空間中的行打印行號;

!: 取反條件;

s///:支持使用其它分隔符,s@@@,s###;

替換標記:

g: 行內全局替換;

p: 顯示替換成功的行;

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

例一:在UUID文本后追加文本

[root@localhost ~]# sed '/^UUID/a \hello dongzhikang' /etc/fstab

例二:將UUID命令替換結果保存到指定文件中

[root@localhost ~]# sed '/UUID/w /tmp/fstab.txt' /etc/fstab

例三:模式空間匹配到的行至指定文件中

[root@localhost ~]# sed '6r/etc/lssus' /etc/fstab

例四:顯示符合條件的行號

[root@localhost ~]# sed '/^UUID/=' /etc/fstab
#
/dev/mapper/VolGroup-lv_root /                       ext4    defaults        1 1
10
UUID=d928b19c-a5b3-4b6d-918c-2952b6353c69 /boot                   ext4    defaults        1 2

例一:替換以p開關的c結尾的加er

[root@localhost etc]# sed 's@p..c@&er@' /etc/fstab 

練習1:刪除/boot/grub/grub.conf文件中所有以空白開頭的行行首的空白字符;

~]# sed ‘s@^[[:space:]]\+@@’ /etc/grub2.cfg 

練習2:刪除/etc/fstab文件中所有以#開頭,后面至少跟一個空白字符的行的行首的#和空白字符;

~]# sed ‘s@^#[[:space:]]\+@@’ /etc/fstab 

練習3echo一個絕對路徑給sed命令,取出其基名;取出其目錄名;

~]# echo “/etc/sysconfig/” | sed ‘s@[^/]\+/\?$@@’ 

高級編輯命令:

h: 把模式空間中的內容覆蓋至保持空間中;

H:把模式空間中的內容追加至保持空間中;

g: 從保持空間取出數據覆蓋至模式空間;

G:從保持空間取出內容追加至模式空間;

x: 把模式空間中的內容與保持空間中的內容進行互換;

n: 讀取匹配到的行的下一行至模式空間;

N:追加匹配到的行的下一行至模式空間;

d: 刪除模式空間中的行;

D:刪除多行模式空間中的所有行; 

sed -n ‘n;p’ FILE:顯示偶數行

sed ‘1!G;h;$!d’ FILE:逆向顯示文件內容

sed ‘$!N;$!D’ FILE: 取出文件后兩行;

sed ‘$!d’ FILE:取出文件最后一行;

sed ‘G’ FILE:

sed ‘/^$/d;G’ FILE:

sed ‘n;d’ FILE: 顯示奇數行;

sed -n ‘1!G;h;$p’ FILE: 逆向顯示文件中的每一行;

例一:逆向顯示文件中的每一行

[root@localhost ~]# sed '1!G;h;$p' test.txt

 

原創文章,作者:kang,如若轉載,請注明出處:http://www.www58058.com/77646

(0)
kangkang
上一篇 2015-07-06
下一篇 2015-07-08

相關推薦

  • wed服務基礎·httpd基礎配置詳解

    一、 Web Service基礎: service:計算機后臺提供的功能或計算機可以提供的某一種功能 Web Service本質:通過網絡調用其它網站的資源 根據來源的不同,分為兩種服務: 本地服務:使用同一臺機器提供的服務,不需要網絡 網絡服務:使用另一臺機器提供的服務,需要網絡   IANA互聯網地址授權機構(Internet Assigned…

    2017-06-09
  • mysql or條件可以使用索引而避免全表

    在某些情況下,or條件可以避免全表掃描的。 1 .where 語句里面如果帶有or條件, myisam表能用到索引, innodb不行。 1)myisam表:  CREATE TABLE IF NOT EXISTS `a` (   `id` int(1)&nb…

    Linux干貨 2015-04-13
  • 位運算符及其應用

    一、C語言的六種位運算符: & 按位與 | 按位或 ^ 按位異或 ~ 取反 << 左移 >> 右移 1.   按位與運算 按位與運算符"&"是雙目運算符。     &nb…

    Linux干貨 2015-11-18
  • nginx負載均衡搭建

    組 網絡拓撲圖 nginx負載均衡服務器搭建 首先準備三臺機器 主機A(nginx負載均衡器) 主機B 主機C 主機A需兩塊網卡(一塊外網,一塊內網) 主機B和主機C各一塊 (各一塊內網的IP,如果主機B C和主機A內網網卡在一個網段就不需要配置網關地址了。 規劃好網絡后,nginx負載主機分別ping下各rs主機是否可通 主機A打開核心轉發功能 #echo…

    Linux干貨 2017-05-17
  • Linux啟動過程及系統初始化

    一、前言     服務器在正常的運行過程中,很少有重啟的機會。在正常的情況下,也很少有出現啟動異常的情況,但是在遭到了人為或者誤操作的情況后,可能會出現啟動異常的情況。為了加深學習系統啟動流程,能夠更加深入理解Linux系統的啟動流程。總結了這篇文字。 二、簡述啟動流程     …

    Linux干貨 2016-11-23
欧美性久久久久