sed命令

sed命令詳解

概述:sed是一種流編輯器,他一次處理一行內容,處理時他會把當前的行存儲在臨時的緩沖區中,稱為模式空間,接著用sed命令處理緩沖區的內容,處理完成后,把緩沖區中的內容送到屏幕中,接著讀入下一行,執行下一個循環,這樣不斷的重復,直到文件的末尾,文件內容并沒有改變,除非使用重定向存儲輸出。sed總是以行對輸入處理,sed處理的不是原文件而是源文件的拷貝。

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

在sed工具中會自動的開辟一個內存空間(模式空間patterm space),自動讀取文件中的一行,可以根據sed指令切割成一個小的和字段一樣,可以一段一段開處理,處理完自動這行就沒有了,處理結果可以顯示和修改,接著讀入下一行,執行下一個循環。

用法:

sed [option]… ‘script’ inputfile…?? (script是地址命令)

  1. -n 不輸出模式空間內容到屏幕,不自動打?。ㄊ勾蛴热葜伙@示一遍)
  2. -e 多點編輯,可以有多個script
  3. -f 從指定文件中讀取編輯腳本
  1. -r 支持使用擴展正則表達式
  2. -i.bak:備份文件并原處編輯

地址定界:

1.不給地址:對全文進行處理

2.單地址:#:指定的行,$:最后一行,/pattern/:被此模式能夠匹配到的每一行

3.地址范圍:#,#(從幾行到第幾行)。#,+#(第幾行到這行之后多少行)。/pat1/,/pat2/(兩個模式之間的行)。#,/pat1/(從第#行開始找,一直找到符合part1條件的行)。

4.~:步進,1~2 奇數行 2~2偶數行

編輯命令:

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

1

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

a[\]text:在指定行后面追加文本 (補空格 \)

2

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

3

c[\]text 替換行為單行或多行文本。(Source那行替換為xxxxx)可替換配置文件

4

w /path/somefile :保存模式匹配的行至指定文件(例,將bash中以alias開頭的行拿出來存到另一個文件中)

5

r /path/somefile 讀取指定文件的文本至模式空間中匹配到的行后。例,讀取release文件到以 alias開頭的行的后面。

6

!模式空間中匹配行取反處理,(除了。。。干什么事)例打印除了bash結尾的所有的行

7

s///:搜索替代(查找替換),支持使用其他分隔符,s@@@,s###

替換標記:(命令中前面是正則表達式,后面是字符串)

g:行內全局替換

p:顯示替換成功的行

w:將替換成功的行保存至文件中

:/etc/passwd文件中bash結尾的行替換成nologin

8

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

(0)
浮夸浮夸
上一篇 2018-04-16 08:53
下一篇 2018-04-16 09:11

相關推薦

  • systemd與awk的用法

    awk,systemd

    Linux筆記 2018-08-07
  • joke

    后續進行修改

    Linux筆記 2018-04-08
  • nmcli命令

    可以用命令行工具 nmcli 來控制 NetworkManager。 在CentOS / RHEL 7中網絡管理命令行工具,也叫nmcli。經常使用ifconfig的用戶應該在CentOS 7中避免使用ifconfig了。nmcli的功能要強大、復雜的多。 地址配置工具:nmcli nmcli – command-line tool for controll…

    Linux筆記 2018-05-05
  • lvs(linux virtual server)、keepalived

    Linux Cluster: httpd: ab, ?benchmark; 系統的擴展方式: Scale up:向上擴展; 提供性能更好的服務器替代現有的服務器; Scale out:向外擴展; 提供更多的服務器來滿足同一個需求; 集群:將多臺主機組織起來滿足某一特定需求; 集群類型: 1、LB:Load Balancing, 負載均衡集群; 負載均衡器,調…

    2018-07-05
  • 正則表達式與文本處理

    1、復制/etc/skel目錄為/home/tuser1,要求/home/tuser1及其內部文件的屬組和其他用戶均沒有任何訪問權限。 cp -r /etc/skel /home/tuser1 chmod -R go-rwx /home/tuser1 2、編輯/etc/group文件,添加組Hadoop。 Nano /etc/group hadoop:x:5…

    Linux筆記 2018-07-15
  • 虛擬機

    虛擬機安裝

    2018-04-01
欧美性久久久久