每天30分鐘吊打Linux常用命令專題 SED命令

2021-10-05 09:47:28 字數 2331 閱讀 1165

sed編譯器被稱為流編輯器。可以在處理資料之前基於事先提供的一組規則遍歷資料流。可以包括文字檔案中的搜尋關鍵字全域性替換、區域性替換(特定行,和標記)、刪除行、新增或追加行;處理單個字元的轉換

命令(y);執行效率極高。

sed命令格式

sed options program file
options常用的可以包括如下表:

選項描述

-f讀取行後劃分欄位的分隔符

-f執行sed檔案中的命令集合

-n禁止sed編譯器的輸出,對比p命令

-v var = value

設定變數並設定預設值

-e執行多個命令

sed命令實踐舉例如下:

管道命令向sed命令中傳遞資料

echo 'hello,world' | sed 's/hello,world/hello,jerry/' # 此處將輸出hello,jerry
說明:s命令可以對匹配字串進行替換,hello,jerry替換hello,world

2. sed指定多條命令

sed -e 's/hello/hi/; s/nihao/how are you/' data.txt
說明:sed將分別執行兩條語句,多條命令之間需要使用『;』進行分割,也可以使用** 次命令列 **。

3. sed執行檔案命令,檔案的命名常以.sed結尾

sed -f multicommands.sed data.txt  # 此時將順序執行multicommands中的函式
說明:sed將分別執行.sed檔案中的命令,.sed中的命令按行填寫

s命令預設替換每一行的第乙個匹配的字串,s命令具有以下的替換標記,其書寫命令如下:

sed 's/hello/hi/** flag **' data.txt
選項

描述數字i

替換行中的第i個位置的元素

g替換匹配的資料

p輸出替換之前的行

w file

將替換結果寫入到檔案中

說明:不同的flag可以組合使用,一般組合使用g和w替換標記。

** 特別提示重點(替換特殊字元,如』』) **

sed 's!/bin!/sbin!' data.txt  # 使用感嘆號來分隔模式
** 數字形式 **

sed '1s!/bin!/sbin!' data.txt # 替換確定行,本例為第一行
sed '2,3s!/bin!/sbin!' data.txt # 替換範圍,本地為[2,3]行
sed '2,$s!/bin/!sbin!' data.txt # 從某一行開始的所有行,從第2行開始
** 文字形式 **

以文字方式的命令列格式sh /pattern/command/

sed -n '/hello/s/hello/hi/p' data.txt  # 輸出匹配行替換之前的資料
** 命令組合 **

組合命令需要使用{}來進行處理,如下:

sed '3' data.txt
刪除指定行

sed '1d' data.txt # 刪除第一行,其中1可替換為範圍1,3或1,$刪除所有
刪除匹配模式的行

sed '/hello 1d' data.txt # 刪除匹配模式中的第一行
刪除某區間裡的行

sed '/1/ /2/d' data.txt # 刪除第一行到第二行
說明:/1/第乙個不是開啟命令,/2/d關閉行刪除

sed  '1i\abc' data.txt  # 在第一行前插入一行新的資料為abc
y命令是唯一乙個可以處理單個字元的命令。其主要命令格式如下:

[address]y/inchars/outchars/
inchars 和outchars會一一對映,如果長度不同,會產生一條錯誤資訊。錯誤資訊如下:

每天30分鐘吊打Linux常用命令專題 正規表示式

bre模式 純文字匹配 從日誌檔案中查詢spring boot啟動埠,假設日誌檔案為nohup.log,可以使用一下命令進行匹配。sed n port s p nohup.outcat nohup.out grep port s 此時輸出的結果會標紅,建議使用此方式特殊字元 linux正規表示式中主...

《每天堅持30分鐘》摘錄

第一章只有學習才能成功 1 有 學習意識 時,學習慾望最大。這時集中學習的話,往往收效很大。2 每天學習30分鐘持續5年,比每天學習5個小時堅持一周的效果要高出10倍。3 三天打魚兩天曬網也可以,每年能反覆50次的話,一年的學習時間會有150天。4 初次學習的知識要在1週後進行複習,過2週後進行第2...

每天30分鐘,實現自我增值

如果你問我,人們常常做事半途而廢是不是因為缺乏耐心。我認為,那是因為人們都太急功近利,習慣於眼前短暫的滿足。事實上,做任何事情都要付出時間。理查德 布蘭森不是一夜成為百萬富翁的 麥當娜也不是一夜成名的 碧鹹姆更不是一出生就是足球巨星。其實,想要自我增值很簡單。為什麼?因為大多數人只是在想而不行動。大...