Linux系列開坑記(三)-流處理器sed

濤哥聊Python發表於2019-01-19
image

今天我們聊一聊Linux 下sed 命令,sed是linux非常強大的命令,可以對資料進行替換,刪除,新增等操作。

sed是 stream editor 流處理器簡寫,使用sed的同學往往需要對正規表示式比較熟悉,因為這樣能讓sed效果發揮到最好地步,從而得心應手。

下面我簡單介紹常用的操作:

替換操作

最簡單替換方式:

echo “sitin” >
>
test.txtsed -i ‘s/sitin/pengtao/g/’ test.txt其中-i 
引數 in-place 對檔案進行修改, s 表示替換,g表示整行替換,沒有就是第一個test.txt 這裡可以是一個或者多個通過正則匹配 *.txt 所有txt檔案

刪除操作

sed ‘2d’ test.txt  
# 刪除檔案第二行

sed ‘2,$d’ test.txt  
# 刪除檔案第二行到最後一行

追加操作

sed ‘$a test1\ntest2’ test.txt # 末尾追加test1,test2

其他例子

image

[圖片上傳失敗…(image-d364c8-1547886865929)]

通過上面大家可以看到使用sed命令,用的正規表示式較多,所以在這裡順便提一下常用正規表示式的有下面幾個:


表示任何單個字元。* 
表示某個字元出現了0次或多次^ 
表示一行的開頭$ 
表示一行的結尾\s 
字串[ 

字符集合,[abc] 
這裡面的表示匹配所有字串。複製程式碼

在執行sed操作的時候,一開始不建議加上-i引數,原因是加上會導致資料被替換,尤其是資料替換錯誤情況。建議是通過把要做變更的檔案進行版本控制比如Git,這樣改變也能看到diff的效果。

這也是文字編輯的奧祕,其實我從一開始文章就建議大家用文字檔案形式進行書寫東西,包括論文,而不使用二進位制檔案,比如word。

使用文字檔案好處:

  1. 通過Git版本控制你能輕易看到檔案變更。

  2. Linux命令能非常好的發揮各個命令定製化能力。

上面介紹了sed常用的幾個操作,更多操作大家可以參考官方文件,或者man sed,info sed 命令。

Linux日常命令使用,同Docker容器化一樣我會以一個系列進行分享,今天是第三篇,後面我將持續分享更多內容,從Linux日常命令使用到shell指令碼程式設計,歡迎大家持續進行關注。

image

相關文章:

Linux系列開坑記(二)-神的編輯器Vim

Linux系列開坑記(一)-常用的3個命令

Python web開發從入門到放棄

聊聊Redis資料持久化備份

Docker容器化部署實踐Docker Compose

【私貨】MongoDB 副本集的運維部署

image

來源:https://juejin.im/post/5c42e268f265da6125786099

相關文章