1、将文件中的重复行删除
sed -n 'G; s/\n/&&/;/^\(.*\n\).*\n/d;s/\n//;h;P' w
将文件中的重复行删除,重复行不一定联在一起。注意防止缓冲区溢出。
读入一行,将hold区追加到pattern区,将第一个\n换成两个,查找是否有匹配,有则删除后重新下一次循环,否则将\n\n换回头,将pattern区copy到hold区,将第一行打出,开始下一个循环。
如简化成 sed -n 'G; /^\(.*\n\).*/d;h;P' w
则原文的空行被删除。
2、删去大部分HTML标签(供多行标签))
sed -e :a -e 's/<[^>]*>//g;/
标签可跨行,如在一行替换掉<...>内容后还有"<"字符则读入下一行,再次进行替换,否则打印出后清空pattern区读入下一行处理。
3、删除每个段落后的一行(每个段落由空行分隔)
sed -n '/^$/;/./' w
命令执行时,如果不是空行那么交换模式空间和保留空间,如果交换后
模式空间不为空,则打印模式空间中内容;如果是空行,那么打印模式空间
间中的内容,也就是打印空行...以此类推,出现结果.