天天看點

正則複習1sed删除某關鍵字的下一行到最後一行

擴充:

列印某行到某行之間的内容

http://ask.apelearn.com/question/559 

例如有個檔案内容如下:

<a href="https://s2.51cto.com/wyfs02/M00/08/8E/wKiom1nkKLLRM_5aAAPA_eoFdy4630.png" target="_blank"></a>

現在我要截取這一段内容出來:

<a href="https://s1.51cto.com/wyfs02/M02/08/8E/wKiom1nkKN-gZ2mLAAMM0oe_ZbA185.png" target="_blank"></a>

示例:

指令示例:sed -n '/\[abcfd]/,/\[rty]/'p test.txt

<a href="https://s2.51cto.com/wyfs02/M00/A7/3E/wKioL1nkJirBX0UcAATyzs1xLZs027.png" target="_blank"></a>

直接輸入字元串也行:

<a href="https://s4.51cto.com/wyfs02/M01/08/8E/wKiom1nkKLiwTqpoAARl9leuY2I988.png" target="_blank"></a>

sed轉換大小寫 

http://ask.apelearn.com/question/7758 

在sed中,使用\u表示大寫,\l表示小寫

1. 把每個單詞的第一個小寫字母變大寫:

指令示例:sed 's/\b[a-z]/\u&amp;/g' filename

<a href="https://s5.51cto.com/wyfs02/M02/08/8E/wKiom1nkKP7CkpXEAAgSYmNlp-E681.png" target="_blank"></a>

2.把所有小寫變大寫:

指令示例:sed 's/[a-z]/\u&amp;/g' filename

<a href="https://s2.51cto.com/wyfs02/M01/08/8E/wKiom1nkKQHhO7mHAAerNGWZ2ys453.png" target="_blank"></a>

3. 大寫變小寫:

指令示例:sed 's/[A-Z]/\l&amp;/g' filename

例如我現在有一個檔案裡面全是大寫的字元:

<a href="https://s1.51cto.com/wyfs02/M00/A7/3E/wKioL1nkJkzi_ZfpAAP4LughKwI400.png" target="_blank"></a>

現在我要把這些字元全部變成小寫:

<a href="https://s5.51cto.com/wyfs02/M00/08/8E/wKiom1nkKQWR4xJRAAXTTmawVlA800.png" target="_blank"></a>

sed在某一行最後添加一個數字

http://ask.apelearn.com/question/288 

指令示例:sed 's/\(^a.*\)/\1 12/' filename

這個指令會在a開頭的行後面加一個數字12:

<a href="https://s4.51cto.com/wyfs02/M02/A7/3E/wKioL1nkJlOwGHR8AAf_doYWv8I821.png" target="_blank"></a>

http://ask.apelearn.com/question/213 

指令示例:sed '/c/{p;:a;N;$!ba;d}' filename

這個指令定義了一個标簽a,比對c,然後N把下一行加到模式空間裡,比對最後一行時,才退出标簽循環,然後指令d,把這個模式空間裡的内容全部清除。

例如我現在有一個檔案,檔案的内容如下:

<a href="https://s5.51cto.com/wyfs02/M01/A7/3E/wKioL1nkJyWhIiD4AAP2c2qpQTE761.png" target="_blank"></a>

現在我可以用上面的指令從c的下一行開始全部删除:

<a href="https://s5.51cto.com/wyfs02/M01/08/8E/wKiom1nkKTGhtRSDAAOInwqjVbI019.png" target="_blank"></a>

列印1到100行含某個字元串的行 

http://ask.apelearn.com/question/1048 

這個需求,其實就是sed指定行範圍比對

指令示例:sed  -n '1,100{/root/p}'  filename

現在我有一個檔案,檔案裡有116行内容:

<a href="https://s5.51cto.com/wyfs02/M01/A7/3E/wKioL1nkJnvzDln7AAGWPwkU_-Q004.png" target="_blank"></a>

使用上面的那條指令就可以列印1到100行包含了root字元串的行:

<a href="https://s4.51cto.com/wyfs02/M00/08/8E/wKiom1nkKTSjMCeUAAYi3UtWHQA767.png" target="_blank"></a>

本文轉自 ZeroOne01 51CTO部落格,原文連結:http://blog.51cto.com/zero01/1972735,如需轉載請自行聯系原作者