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
高級編輯指令:
高級編輯指令其實就是將模式空間和保持空間中的內容來回互調,實現一些高大上的指令效果。
選項:
原創文章,作者:458813466,如若轉載,請注明出處:http://www.www58058.com/34960