文件編輯之神器Sed

1.png

2.png

pattern space   //  文本中每行內容都會進入到pattern space中, 如果匹配到了,就會進入到右分支, 如果沒有匹配到,則進入左分支。


hold space  //  就是已經被模式匹配到, 并且編輯后保存的內容就是hold space 中.

默認情況下,當沒有被匹配之后,沒有匹配到內容也會被輸出到屏幕之上, 一旦被模式匹配上, 就分為兩種操作, 一種是標準輸出, 另外一種則是編輯。

 

sed 用法:  sed [option]… script inputfile

選項[option]:

-n: 不輸出模式空間的內容(屏蔽自動輸出

        -e: 多點編輯

-f: 文件,文件中放地址命令

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

-i: 在文件中直接編輯

 

   script == 地址命令  

地址和命令之間沒有任何符號。

   

地址定界:

(1)不給地址,直接操作, 對全文操作

(2)  單地址

1>. #

2>. /pattern/  被此處模式匹配到的每一行

3>.$ 表示最后一行

 

(3) 地址范圍

1>. #,#   兩個指定行中的所有行,包括兩個指定行

2>.#,+#   +#  同上

3>./part1/,/part2/   兩次匹配行之間的所有行,包括匹配到的行

4>.#,/part/    指定行到匹配的行

 

(4)步進

1~2   所有的奇數行

2~2  所有的偶數行

 

基礎編輯指令:

(1). d  刪除匹配到的行

(2). p  顯示匹配到的行  一般要與-n一起用,否則被匹配到行會顯示兩次

(3). c   替換匹配的字符串或者行

(4). a   在匹配到行尾追加內容

(5) i   在匹配到行首添加內容

(6) w /path/to/file   sed匹配編輯后的內容保存到另外一份文件中

(7) r /path/to/file    將指定文件的內容追加到匹配到行之后

(8) =  打印行號

(9)  !  模式空間中匹配行取反處理

 

替換操作刪除或者編輯行中部分內容的時候,要使用替換操作

s/匹配到到內容/替換的內容/替換標記

替換標記:

g: 全局替換(整行都替換)  默認只替換第一個匹配到的內容

p: 顯示替換成功的行

w:  將替換成功的行指定到模文件中 w /path/to/file

 

高級編輯指令:

高級編輯指令其實就是將模式空間和保持空間中的內容來回互調,實現一些高大上的指令效果。

選項:

3.png

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

(0)
458813466458813466
上一篇 2016-08-15 09:24
下一篇 2016-08-15 09:25

相關推薦

  • 計算機;GPL等開源協議;Linux 哲學思想的煉成;MBR & GPT—fazion in magedu 20.July

    入門Linux的基礎知識 fazionlan blog in 178Linux.July 22nd. 第一臺計算機 1946第一臺計算機ENIAC(electronic numerical integrator and calculator)在美國濱州大學誕生,是美國奧伯丁武器試驗場為了滿足計算彈道而研制的 馮諾依曼體系結構:1946年數學家提出運算器、控制…

    Linux干貨 2016-07-29
  • 一個“蠅量級” C 語言協程庫

    協程(coroutine)顧名思義就是“協作的例程”(co-operative routines)。跟具有操作系統概念的線程不一樣,協程是在用戶空間利用程序語言的語法語義就能實現邏輯上類似多任務的編程技巧。實際上協程的概念比線程還要早,按照 Knuth 的說法“子例程是協程的特例”,一個子例程就是一次子函數調用,那么實際上協程就是類函數一樣的程序組件,你可以…

    Linux干貨 2016-08-15
  • PHP高效率寫法(詳解原因)

    1.盡量靜態化:    如果一個方法能被靜態,那就聲明它為靜態的,速度可提高1/4,甚至我測試的時候,這個提高了近三倍。   當然了,這個測試方法需要在十萬級以上次執行,效果才明顯。   其實靜態方法和非靜態方法的效率主要區別在內存:靜態方法在程序開始時生成內存,實例方法在程序運行中生成內存,所以靜…

    Linux干貨 2015-05-28
  • date命令常見用法。

    date是一個非常實用的小工具,可以查看時間,并且也可以添加選項去完成自己想完成的東西。

    Linux干貨 2017-11-13
  • Nginx及其相關配置詳解(二)

    與套接字相關的配置: 1、server { … }  #配置一個虛擬主機;         Default:—         Context:http server { # 配…

    2017-07-14
  • MySQL高級特性-合并表

    1. Merge Tables         如果愿意的話,可以把合并表看成一種較老的、有更多限制的分區表,但是它們也有自己的用處,并且能提供一些分區表不能提供的功能。 合并表實際是容納真正的表的容器。可以使用特殊的UNION語法來CREATE TABLE。下面是一個合并表的例子: mysql> &n…

    Linux干貨 2015-04-13
欧美性久久久久