在povray文件中删除带有内部标志的多行文本块

时间:2010-05-10 12:02:46

标签: replace multiline tcsh

我有一个pov-ray文件,它定义了很多圆柱体和球体。有时这些形状被定义为具有“颜色@”,这使得povray无法令人难以理解。我发现的一个解决方案是删除有问题的圆柱体和球体。所以包含这个文本的文件

 cylinder {
<    -0.17623,     0.24511,    -0.27947>, <    -0.15220,     0.22658,    -0.26472>,      0.00716
 texture { colorO }
 }
sphere { 
<    -0.00950,     0.00357,     0.00227>,      0.00716
 texture { color@ }
 }
 cylinder {
<    -0.00950,     0.00357,     0.00227>, <     0.00327,     0.00169,     0.00108>,      0.00716
 texture { color@ }
 }
sphere { 
<     0.15373,     0.00601,     0.18223>,      0.00716
 texture { colorO }
 }

会变成这个文本

 cylinder {
<    -0.17623,     0.24511,    -0.27947>, <    -0.15220,     0.22658,    -0.26472>,      0.00716
 texture { colorO }
 }
sphere { 
<     0.15373,     0.00601,     0.18223>,      0.00716
 texture { colorO }
 }

有没有办法用shell脚本替换?优选地在tcsh中。谢谢!

1 个答案:

答案 0 :(得分:1)

cat yourFile | egrep -B 2 -A 1 'color[^@].*' | egrep -v -- '^--$'

这应该可以解决问题,只要你提供的例子是准确的 - 即'color'之前的2行和'color'之后的1行是描述你需要的行。