如何在BASH中替换或删除包含/字符的行?

时间:2011-04-18 07:45:17

标签: sed binary character

我有一个以某些文本行开头并继续使用许多二进制行的文件。我需要从头开始删除文本行以获得纯二进制内容。假设二进制部分以特殊字开头,例如:Connection。我尝试使用带有sed的bash脚本来删除所有这些文本行。问题是:包含/字符的文本行会导致sed将输入中的/后的字符解释为单独的命令。我的代码是这样的:

while read line
  do
        sed -i "/"$line"/d" file_name

        if [ "$line" != Connection* ]
                break;

  done < file_name

这样,当变量“line”包含/字符(例如css / jj)时,sed会返回错误:

  

sed:-e表达式#1,字符6:未知命令:`j'

如何将包含/字符的变量传递给sed以删除相关行? 顺便问一下,有没有办法将二进制内容与文件中的文本分开?有时我的文件在二进制部分的开头没有任何特殊的单词或符号来识别它。

1 个答案:

答案 0 :(得分:0)

您可以安全地将/分隔符替换为任何其他字符,只要您在每次出现时都替换它。有时,我使用§这在大多数文本中都很少见。