【发布时间】:2015-07-23 20:51:30
【问题描述】:
我有一个以一些文本行开头并以许多二进制行继续的文件。我需要从开头删除文本行以获得纯二进制内容。假设二进制部分以一个特殊的单词开头,例如: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 以删除相关行?
顺便说一句,有没有办法将二进制内容与文件中的文本分开?有时我的文件在二进制部分的开头没有任何特殊的单词或符号来识别它。
【问题讨论】: