我有一个以某些文本行开头并继续使用许多二进制行的文件。我需要从头开始删除文本行以获得纯二进制内容。假设二进制部分以特殊字开头,例如: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
以删除相关行?
顺便问一下,有没有办法将二进制内容与文件中的文本分开?有时我的文件在二进制部分的开头没有任何特殊的单词或符号来识别它。
答案 0 :(得分:0)
您可以安全地将/
分隔符替换为任何其他字符,只要您在每次出现时都替换它。有时,我使用§
这在大多数文本中都很少见。