linux技巧

linux中sed命令指定行的范围删除匹配的数据

命令:

sed ‘1,6 {/a/d}’ a.txt ## 删除1-6行中匹配a的行
sed ‘5,$ {/a/d}’ a.txt ## 删除第5行到最后1行中,所有的匹配a的行

linux中sed命令指定行的范围删除匹配的数据
例子:
删除speedups = Feature 开始,)结束
sed -i "/^speedups = Feature/,/^)$/d" 1.txt 
注意: / 和 双引号 需要\来转义,<和> 不需要转义
sed  "/^<http:\/\/\"ok\"/,/^<\/script>$/d" b.txt 
包含123的那行替换成hello换行hello2
sed -e '/123/c\hello\nhello2' a.txt

删除cnzz统计
find . -type f -name \*htm\* |xargs sed -i '/cnzz/c\'
删除baidu统计
find . -type f -name \*htm\* |xargs sed -i "/^<script src=\"http:\/\/cpro.baidustatic.com/,/^<\/script>$/s/.*//g"