Sed 中使用正規表示式

2021-09-04 12:58:48 字數 1020 閱讀 1281

1. 需求

現在有乙個字串,需要將其前導的數字和下劃線去掉,只保留後一部分,例如:

對於字串:20181219_191533_ext_t_poi_change_log_poi,處理後的字串就是:ext_t_poi_change_log_poi;如果是20181219_191533_ext_t_poi_change_2_log_poi,處理後就應該是:ext_t_poi_change_2_log_poi

2. **

[root@server4 temp]

# echo "20181219_191533_ext_t_poi_change_log_poi" |sed 's/[0-9]\+//g' | sed 's/^_\+//'

ext_t_poi_change_log_poi

上述的邏輯是:

step 1:首先過濾全部數字;

step 2:接著過濾前導_

但是使用上述的sed+ 正規表示式可能會得到不理想的結果。如下所示:

[root@server4 temp]

# echo 20181219_191533_ext_t_poi_change_log_2_poi| sed 's/[0-9]\+//g' | sed 's/^_\+//'

ext_t_poi_change_log__poi

這樣也會把我們想要的task_name 中的數字給過濾了,導致產生了錯誤的結果。

echo 20181219_191533_ext_t_poi_change_log_2_poi|

sed's/^[0-9_]\+//g'

上述正規表示式的邏輯是:

step 1. 處理前導的數字或者_

這個的結果就是:ext_t_poi_change_log_2_poi。這才是正確的。

sed 正規表示式

如果testfile的內容是 welcome to the world of regexp 現在要去掉所有的html標籤,使輸出結果為 hello world welcome to the world of regexp 怎麼做呢?如果用下面的命令 sed s g testfile 結果是兩個空行,...

sed 常用正規表示式

1.乙個比較實用的正規表示式 匹配html的嵌入 匹配 的嵌入碼 刪除僅由空字元組成的行 sed space d filename 匹配html標籤 例如 從html檔案中剔除html標籤 sed s g space d file.html 例如 要從下列 中去除 及其中包括的 b 4c6c2a65...

Linux正規表示式 sed

相比於grep,sed可以替換內容並輸出到螢幕上。sed 選項 動作 filename選項 n 將經過sed命令處理過的行輸出到螢幕 e 允許對輸入資料應用多條sed命令 i 用sed的修改結果直接修改所讀取的檔案 動作 d 刪除 p 列印 s 字串替換 本行 g 本行全域性替換 列印 etc pa...