bash:使用自定义行分隔符逐行读取标准数据

bash:使用自定义行分隔符逐行读取标准数据,bash,readfile,Bash,Readfile,我有一个bash脚本,可以读取stdin中的行 while read var do echo $var done 现在,我必须修改它,以便可以接受带有行分隔符“EndOfMessage”(多个符号的分隔符)的输入 我该怎么做呢?如果我理解正确,输入将类似于“line1EndOfMessageline2EndOfMessageline3”?如果是这样,您可以这样做: sed $'s/EndOfMessage/\\\n/g' | while read var; do echo $v

我有一个bash脚本,可以读取stdin中的行

while read var
do
    echo $var
done
现在,我必须修改它,以便可以接受带有行分隔符“EndOfMessage”(多个符号的分隔符)的输入


我该怎么做呢?

如果我理解正确,输入将类似于“line1EndOfMessageline2EndOfMessageline3”?如果是这样,您可以这样做:

sed $'s/EndOfMessage/\\\n/g' | while read var; do
    echo $var
done

我认为实现它的唯一方法是通过tr“\036”“\n”或类似的管道输入,如果您的记录本身可以有“\n”,则需要一些类似tr“\036\n”“\n\036”的别名。