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

How to remove a special string from a file?

我正在尝试删除以下两行:

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

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

我怎么能在 UNUX 中做到这一点?

尝试分别删除每次,但是当运行命令行中的以下命令时:

sed "<STREAMINFO> 1 39" hmm0/hmmdefs

我收到以下错误:

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

您需要使用 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