擴充:
列印某行到某行之間的内容
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&/g' filename
<a href="https://s5.51cto.com/wyfs02/M02/08/8E/wKiom1nkKP7CkpXEAAgSYmNlp-E681.png" target="_blank"></a>
2.把所有小寫變大寫:
指令示例:sed 's/[a-z]/\u&/g' filename
<a href="https://s2.51cto.com/wyfs02/M01/08/8E/wKiom1nkKQHhO7mHAAerNGWZ2ys453.png" target="_blank"></a>
3. 大寫變小寫:
指令示例:sed 's/[A-Z]/\l&/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,如需轉載請自行聯系原作者