使用unix sed删除包含以美元符号开头的特定字符串的行

使用unix sed删除包含以美元符号开头的特定字符串的行,unix,sed,Unix,Sed,我对Unix非常陌生 我有一个包含以下行的参数文件parameter.prm $$ErrorTable1=ErrorTable1 $$Filename1_New=FileNew.txt $$Filename1_Old=FileOld.txt $$ErrorTable2=ErrorTable2 $$Filename2_New=FileNew.txt $$Filename2_Old=FileOld.txt $$ErrorTable3=ErrorTable3 $$Filename3_New=FileN

我对Unix非常陌生

我有一个包含以下行的参数文件
parameter.prm

$$ErrorTable1=ErrorTable1
$$Filename1_New=FileNew.txt
$$Filename1_Old=FileOld.txt
$$ErrorTable2=ErrorTable2
$$Filename2_New=FileNew.txt
$$Filename2_Old=FileOld.txt
$$ErrorTable3=ErrorTable3
$$Filename3_New=FileNew.txt
$$Filename3_Old=FileOld.txt
我想得到的输出为

$$ErrorTable1=ErrorTable1
$$ErrorTable2=ErrorTable2
$$ErrorTable3=ErrorTable3
基本上,我需要删除以
$$Filename
开头的行


由于
$
是一个关键字,因此我无法将其解释为字符串。如何使用sed实现这一点

基于模式搜索从文本文件中提取信息是grep的工作:

grep ErrorTable file
甚至

grep -F '$$ErrorTable' file
-F
告诉grep将搜索词视为固定字符串而不是正则表达式


为了回答您的问题,如果正则表达式需要搜索在正则表达式语言中具有特殊含义的字符,则需要对其进行转义:

grep '\$\$ErrorTable' file
对于sed:

$ sed '/$$Filename/d' infile
$$ErrorTable1=ErrorTable1
$$ErrorTable2=ErrorTable2
$$ErrorTable3=ErrorTable3

/$$Filename/
部分是地址,即对于与此匹配的所有行,将执行它后面的命令。该命令为
d
,用于删除该行。不匹配的行将按原样打印。

谢谢!但是我只需要删除
$$Filename
。我需要该模式将
$
标识为字符串,这是我在这里得到的。我使用了代码
sed/\$\$Filename/d”
使用
grep-Fv'$$Filename'文件
-v
取消匹配