国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

一篇文章學會shell工具篇之sed

系統 Linux
sed叫做流編輯器,在shell腳本和Makefile中作為過濾器使用非常普遍,也就是把前一個程序的輸出引入sed的輸入,經過一系列編輯命令轉換成為另一種格式輸出。
  • sed工具執行原理;
  • 有關sed的參數及action的常見操作方法;
  • 定址;
  • 模式空間和保持空間;
  • 使用標簽

1.首先先來了解一下什么是sed?

sed叫做流編輯器,在shell腳本和Makefile中作為過濾器使用非常普遍,也就是把前一個程序的輸出引入sed的輸入,經過一系列編輯命令轉換成為另一種格式輸出。下面我們通過一張原理圖來了解一下它的工作模式:

編輯命令的格式為,sed /pattern/action

 

 

經過sed處理后文件內容并沒有改變,除⾮使用重定向存儲輸出。sed主要用來自動編輯一個或多個文件;簡化對文件的反復操作;sed默認按照Basic 規范基本匹配!也就是說類似于( ) { } | 等特殊字符需轉義,否則就不識別,或者是用擴展模式也可以。

2. 下面重點介紹一下有關sed的參數及action的操作方法

(1)-n參數,p命令的action

 

(2) d命令的action

 

 

(3)/pattern/s/pattern1/pattern2/:查找符合pattern的行,將該行***個匹配pattern1的字符串替換為pattern2

/pattern/s/pattern1/pattern2/g:查找符合pattern的行,將該行所有匹配pattern1的字符串替換為pattern2

 

 

這個操作不知道大家會不會聯想到vim編輯器中的底行模式搜索,它們是類似的。

下面總結一下sed中參數的選擇及執行操作:

[plain] view plain copy

<strong>參數選擇:

-n:一般sed命令會把所有數據都輸出到屏幕,如果加入-n選項的話,則只會把經過sed命令處理的行輸出到屏幕。

-e:允許對輸入數據應用多條sed命令編輯。

-i:將修改結果直接寫入到讀取數據的文件,而不是由屏幕輸出。(1.修改了文件; 2.由cat可查看)

-f: 指定sed腳本的文件名。

action:

a:追加,在當前行后添加一行或多行。

c:行替換,用c后面的字符串替換原數據行。

i:插入,在當前行前插入一行或多行。

p:打印,輸出指定的行。

s:字符串替換,用一個字符串替換另外一個字符串。格式為”行范圍s/舊字符串/新字符串/g”(如果不加g的話,則表示只替換每行***個匹配的串)。

</strong>

以上沒有練習到的,有興趣的可以去嘗試嘗試!

3.再來介紹一下sed中的定址

定址用于決定對文件中哪些行進行行編輯,地址的形式可以是數字、正則表達式、或二者的結合。如果沒有指定地址,sed將處理輸入文件的所有行。下面舉一些例子:

   

 

sed '/start/ ,/end/d' file #刪除包含’start’行和’end’行之間的行

sed '/start/, 10d' file #刪除包含’start’ 的行到第十行的內容

4.模式空間和保持空間

(1)保持空間:用來存儲數據,相當于一個倉庫,它不能對數據進行處理 ;

(2)模式空間:專門以行為單位對數據進行處理。

一般情況下,如果不顯示的使用一些選項的話,是不會用到保持空間的。

[plain] view plain copy

<span style="color:#000000;"><strong>命令:

g:將保持空間的內容拷貝到模式空間中,會將模式空間原來的值覆蓋掉。

G:將保持空間的內容追加到模式空間中。

h:將模式空間的值拷貝到保持空間,會將保持空間原來的值覆蓋掉。

H:將模式空間的值追加到保持空間中。

d:刪除模式空間的所有行,并讀下一行到模式空間。

D:刪除模式空間的***行,不讀下一行到模式空間。

n:輸出模式空間的行,讀取下一行替換當前模式空間的行,接著執行下一條處理命令而不是***條命令。

N:讀入下一行,追加到模式空間行后面,此時模式空間中有兩行。

x:交換模式空間和保持空間的內容。

</strong></span>

例1:給每行后面添加一行空行

 

例2:用sed模擬倒序(tac)打印的過程

 

例3.追加匹配行到文件末尾

 

例4:將一列內容變為一行

 

例5:求出1-100的求和

 

例6:打印輸出奇數行和偶數行

 

5.使用標簽

[plain] view plain copy

:a表示標簽a;

ba表示跳轉到a標簽;

$表示***一行;

!表示不做后續操作

所以,$!ba表示***一行不用跳轉到a標簽,結束此次操作。

下面舉一個例子: 

 

***補充一點:

[plain] view plain copy

與grep一樣,sed也支持特殊元字符來進行模式查找、替換。不同的是,sed使用的正則表達式是括在斜杠線"/"之間的模式。

如果要把正則表達式分隔符"/"改為另一個字符,比如o,只要在這個字符前加一個反斜線,在字符后跟上正則表達式,再跟上這個字符即可。例如:sed -n '\o^56op' datafile

^:行首定位符 /^my/ 匹配所有以my開頭的行;

$:行尾定位符 /my$/ 匹配所有以my結尾的行;

.:匹配除換行符以外的單個字符 /m..y/ 匹配包含字母m,后跟兩個任意字符,再跟字母y的行;

*:匹配零個或多個前導字符 /test*/ 匹配包含字符串 tes,后跟零個或多個 t 字母的行;

[]:匹配指定字符組內的任一字符 /t[eE]st/ 匹配包含test 或 tEst 的行;

[^]:匹配不在指定字符組內的任一字符 /t[^eE]st/ 匹配string 以t開頭,但st之前的那個字符不是e或E的行;

&:保存查找串以便在替換串中引用 s/test/*&*/g 符號&代表查找串。test將被替換為*test*

\<:詞⾸首定位符 /\<my/ 匹配包含以my開頭的單詞的行;

\>:詞尾定位符 /my\>/ 匹配包含以my結尾的單詞的行;

x\{m\}:連續m個x 如:/9\{5\}/ 匹配包含連續5個9的行;

x\{m,\}:至少m個x 如:/9\{5,\}/ 匹配包含至少連續5個9的行;

x\{m,n\}:至少m個,但不超過n個x 如:/9\{5,7\}/ 匹配包含連續5到7個9的行。 還有一個單元匹配--替換的問題: 

 

責任編輯:龐桂玉 來源: 馬哥Linux運維
相關推薦

2017-09-05 08:52:37

Git程序員命令

2021-07-01 10:01:16

JavaLinkedList集合

2022-08-04 09:39:39

Kubernetes聲明式系統

2022-08-03 08:17:00

Redis事務內存

2020-10-09 08:15:11

JsBridge

2022-02-21 09:44:45

Git開源分布式

2021-04-09 08:40:51

網絡保險網絡安全網絡風險

2024-06-25 08:18:55

2023-05-12 08:19:12

Netty程序框架

2019-04-17 15:16:00

Sparkshuffle算法

2021-06-30 00:20:12

Hangfire.NET平臺

2021-05-15 09:18:04

Python進程

2020-10-22 08:25:22

JavaScript運作原理

2021-02-02 18:39:05

JavaScript

2019-01-09 10:04:16

2019-10-17 19:15:22

jQueryJavaScript前端

2018-10-22 12:50:20

CDN網絡內容發布網絡

2020-11-10 10:48:10

JavaScript屬性對象

2021-01-29 18:41:16

JavaScript函數語法

2020-02-28 11:29:00

ElasticSear概念類比
點贊
收藏

51CTO技術棧公眾號

91短视频在线观看| 久久美女精品| 亚洲久本草在线中文字幕| 国产91av视频在线观看| 韩日一区二区三区| 九九久久久久久久久激情| 女人高潮被爽到呻吟在线观看| 色成年激情久久综合| 黑粗硬长欧美在线视频免费的| 91免费小视频| 欧美这里只有精品| 天堂一区二区在线免费观看| 99r国产精品视频| 在线亚洲a色| 久久久久亚洲精品国产| 99欧美精品| 中文字幕一区二区三区电影| 亚洲欧美韩国| 亚洲欧美日韩中文在线制服| av中文在线资源| 亚洲国产另类久久精品 | 精品美女一区二区| av女优在线| 欧美日韩另类一区| 一区二区三区视频在线观看视频| 激情亚洲一区二区三区四区| 中文字幕不卡| 欧美亚洲丝袜传媒另类| 麻豆网站在线看| 欧美sm极限捆绑bd| 成人免费网站视频| 精品久久久av| 精品伊人久久久| 青青在线视频一区二区三区| av资源久久| 国产精品一区二区三区观看| 亚洲欧美日本日韩| 四虎精品欧美一区二区免费| 成人va在线观看| 91日韩视频在线观看| 亚洲综合丝袜美腿| 超碰97在线免费观看| 亚洲成人av片在线观看| 成人免费黄色| 欧美最猛性xxxx| 日韩片欧美片| 欧美一区二区三区四区在线观看地址 | 91麻豆精品| 91超碰caoporn97人人| 91综合网人人| 日韩精品一线二线三线| 成人国产精品免费观看| 男男视频在线观看网站| 欧美性xxxxxx少妇| 日韩在线短视频| 国产suv精品一区二区| 激情欧美国产欧美| 国产免费黄色一级片| 亚洲午夜久久久久中文字幕久| 蜜桃视频在线观看免费视频网站www| 亚洲区一区二区| 国产永久精品大片wwwapp| 欧美高清性xxxxhd| 欧美国产乱子伦 | 中文字幕一区不卡| 91官网在线| xvideos成人免费中文版| 欧美三级美国一级| 一区二区免费在线观看| 亚洲欧美日韩国产一区二区三区| 国产cdts系列另类在线观看| 久久精品国产一区二区电影| 91精品亚洲| 大肉大捧一进一出好爽视频| 欧美在线观看视频一区二区| 日韩一区二区三免费高清在线观看| 91老司机精品视频| av一区二区三区四区| 毛片在线播放网址| 欧美大码xxxx| 日本中文字幕一区二区视频| 福利片免费在线观看| 亚洲第一福利视频| 成人在线免费观看视频| 97久久国产亚洲精品超碰热| 欧美日韩一区二区三区| 亚洲欧美综合久久久久久v动漫| 国产精品乱子乱xxxx| 国产欧美日韩三区| 999av小视频在线| 成人美女av在线直播| 91亚洲国产成人精品一区二区三 | 久久久久久久久四区三区| 亚洲国产电影在线观看| 色呦呦网站在线观看| 日本欧美中文字幕| 国产乱码精品一区二区三区五月婷| 视频一区二区三区国产| 久久99青青精品免费观看| 青娱乐精品在线视频| 亚洲成av人影片在线观看| 超碰91人人草人人干| 91精品啪在线观看国产18| 成人国产精品| av免费播放| 一级特黄妇女高潮| 国产在线精品一区二区不卡了| 性色a∨人人爽网站| 久久综合电影一区| 日本免费新一区视频| 大胆av不用播放器在线播放| 国产精品免费一区| 亚洲青青青在线视频| 丁香综合av| 国内性生活视频| 亚洲毛片在线免费观看| 三级不卡在线观看| 黄色大片在线播放| 国产精品一区二区欧美| 日韩欧美黄色动漫| 日韩久久综合| 久播影院第一理论片| 欧美黄色成人网| 久久欧美一区二区| 欧美一级做a| 黄色成人在线免费观看| 日韩电影第一页| 黄一区二区三区| 五月天国产在线| 日韩不卡一二区| 亚洲精品日韩在线| 国产主播一区二区三区| 性爽视频在线| 欧美一区二区三区综合| 欧美经典一区| 动漫av免费观看| 欧美激情va永久在线播放| 久久噜噜亚洲综合| 亚洲精品一区在线| 高清成人av| 国产精品你懂得| 欧美日韩在线视频一区| 一区在线免费| 欧美卡一卡二| 毛片在线视频观看| 日韩视频免费大全中文字幕| 久久精品亚洲精品国产欧美kt∨| 日韩视频在线直播| 男女免费网站| 成人福利网站在线观看| 精品国产乱码久久久久久虫虫漫画| 日韩精品诱惑一区?区三区| 欧美色综合一区二区三区| 久久99精品久久久久久水蜜桃| 精品国产91久久久久久久妲己 | 成人免费高清在线播放| 久久综合精品一区| 亚洲精品乱码久久久久久金桔影视 | 日本不卡视频在线观看| 黄色综合网址| 成年人观看网站| 国产精品夫妻激情| 欧美日韩一区二区三区四区五区| 日本特黄久久久高潮| 青青青国内视频在线观看软件| 国产精品视频二| 97国产成人精品视频| 色噜噜狠狠色综合欧洲selulu| 日本在线不卡视频| 日本99精品| 亚洲成人精品一区二区三区| 欧美日韩在线播放一区二区| 色噜噜狠狠色综合网图区| 亚洲精品一二三| 视频一区在线视频| 日韩成人在线观看视频| 日韩国产福利| 成人午夜免费剧场| 欧洲一区二区视频| 欧美精品日日鲁夜夜添| 不卡一区二区三区四区| 99欧美视频| 777午夜精品电影免费看| 真不卡电影网| 毛片av在线播放| 国产精品日韩久久久久| 亚洲第一网站免费视频| 最新成人av在线| 久久高清国产| 麻豆精品av| 女人高潮被爽到呻吟在线观看| 国产国语**毛片高清视频| 亚洲欧美久久234| 欧美与欧洲交xxxx免费观看| 精品成人一区二区三区| 亚洲精品国久久99热| 国产精品一品二品| 一区二区在线影院| 欧州一区二区三区| 国产网站在线|