如何从文件中删除特殊字符串?

时间:2015-01-10 12:18:46

标签: sed

我试图删除以下两行:

<STREAMINFO> 1 39
<VECSIZE> 39<NULLD><MFCC_D_A_0><DIAGC>

在文件夹hmm0中的texfile(hmmdefs)中重复多次。

我怎么能在UNUX中这样做?

尝试单独删除每次,但在命令行中运行以下命令时:

sed "<STREAMINFO> 1 39" hmm0/hmmdefs

我收到以下错误:

sed: 1: "<STREAMINFO> 1 39": invalid command code <

1 个答案:

答案 0 :(得分:1)

您需要使用d标志来删除与给定正则表达式匹配的行。并且不要忘记将正则表达式包含在/分隔符中。

sed "/<STREAMINFO> 1 39/d" hmm0/hmmdefs

更具体地说,您需要添加锚点。

sed "/^<STREAMINFO> 1 39$/d" hmm0/hmmdefs

^断言我们在开始时$声称我们已经结束了。

示例:

$ cat file
<STREAMINFO> 1 39
<VECSIZE> 39<NULLD><MFCC_D_A_0><DIAGC>
foo bar
$ sed '/<STREAMINFO> 1 39\|<VECSIZE> 39<NULLD><MFCC_D_A_0><DIAGC>/d' file
foo bar