《Linux Shell》筆記之sed與正則表達式(實例總結) 未完待續


 

Sed使用ERE的方法:

  • sed -r
  • 反斜剛+ERE正則表達式,如 \+ 等 

 

1. 實例: 刪除一個字符串中的部分頭部的字符

文件: test2.sed,內容如下:

abc1234567890

abc0987654321

xyz1234567890

 

期望輸出結果:

1234567890

0987654321

1234567890

 

test@sha>sed 's/[a-zA-Z]\{3\}//g' test2.sed

1234567890

0987654321

1234567890

 

2. 實例: 刪除一個字符串中的部分字符

輸入內容: 2007-12-1222:16:30

期望輸出結果: 20071212221630

 

test@sha>echo 2007-12-12 22:16:30| sed 's/[-: ]//g'

20071212221630

 

3. 實例: 替換出常規的ip地址

輸入內容:202.038.008.090

期望輸出結果:22.38.8.90

 

test@sha>echo 202.038.008.090|sed 's/0\+\([0-9]\+\)/\1/g'

22.38.8.90

test@sha>echo 202.038.008.090|sed -r 's/0+([0-9]+)/\1/g'

22.38.8.90

解題:把0x替換成x,如:02替換2, 03替換成3,09替換成9

詳解:

  • s/原字符/替換字符/g  #sed替換文本的方法
  • \+ 表示使用ERE正則表達式+,它匹配一個或者多個前面的字符
  • sed -r 為了使用ERE正則表達式+,等價於\+
  • \([0-9]\+\) 選定字符,它匹配 0-9任意數字和任意一個或多個數字,如:01,11,12,13等
  • \1 引用之前選定的字符
  • 如果使用



注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2020 ITdaan.com